阅读 49

Nginx 安装与维护

如何在 Linux 上安装 Nginx

  1. 通过 yum 源进行安装。

步骤

  • 添加源 rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  • 查看已添加的源 yum repolist
  • 安装 yum install nginx
  • 启动 Nginx systemctl start nginx

常用操作

停止服务 systemctl stop nginx
重新加载 systemctl reload nginx
开机启动 systemctl enable nginx

防火墙的相关操作请查阅 Linux 常用命令

优缺点

优点:简单无脑,直接集成服务
缺点:通常版本不是最新的,兼容性比较泛

  1. 编译安装

步骤

  • 下载 tar.gz 离线包丢到 Linux
  • 解压 tar -xzvf nginx-1.16.0.tar.gz
  • 下载编译所需要的环境包 yum update && yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
  • 进入nginx目录下 cd nginx-1.16.0
  • 配置检验编译环境 ./configure --prefix=[nginx解压路径]
  • 执行编译安装 make && make install
  • 验证 nginx 是否安装成功
# 启动 Nginx 服务
cd [nginx 安装目录]/sbin
./nginx -c [nginx 配置文件]
# 进程查看
ps -ef | grep nginx
复制代码
  • 配置环境变量或创建软链接

优缺点

优点: 性能比 yum 安装的会略好一些(因为你是通过本机当前环境进行编译安装的,兼容性更高), 自定义程度更好, 版本根据离线包版本走
缺点:相比 yum 安装略复杂一些,开机启动需要自己配置

Nginx 日志分割

  1. 编写 shell 脚本
#!/bin/bash
# Rotate the Nginx logs to prevent a single logfile from consuming too much disk space.
LOGS_PATH=/home/phjr/web-service/nginx/logs
LOGS_ACCESS_NAME=phjr_access.log
LOGS_ERROR_NAME=phjr_error.log
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
NGINX_PID=/home/phjr/web-service/nginx/logs/nginx.pid
mv ${LOGS_PATH}/${LOGS_ACCESS_NAME} ${LOGS_PATH}/${YESTERDAY}_${LOGS_ACCESS_NAME}
mv ${LOGS_PATH}/${LOGS_ERROR_NAME} ${LOGS_PATH}/${YESTERDAY}_${LOGS_ERROR_NAME}
# 向 Nginx 主进程发送 USR1 信号。 USR1 信号重新打开日志文件
kill -USR1 $(cat ${NGINX_PID})
复制代码
  1. 启动 crontab 模块进行定时任务的编辑和执行
# 编辑用户定时任务
crontab -e
0 0 * * * /home/phjr/web-service/nginx/sh/phjr_logs.sh
# 查看用户定时任务
crontab -l
复制代码

root 用户可直接修改 /etc/crontab 文件

注意点

  1. Nginx 主程序需要 root 启动,所以如果想通过普通用户启动 nginx 的话必须注释配 置文件 nginx.conf 顶部的 user root 配置,并不能占用 1024 以下系统预留的端口号
  2. 如果是编码安装的,因为 configure 的时候已经设置了 nginx 的安装位置,不能够通过压缩打包迁移,会出路径问题的,迁移必须重新编译安装并制定新的路径
  3. 编写 Linux Shell 脚本的时候注意行尾序列必须使用 LF 格式
  4. 启动 nginx 后,先在服务器上通过 ps -ef | grep nginxcurl xxx:xx 尝试下载查看是否启动成功,若是服务器可访问,外部不可访问,请查看防火墙设置,要么关闭防火墙要么设置开放相应端口号