如何在 Linux 上安装 Nginx
- 通过
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 常用命令
优缺点
优点:简单无脑,直接集成服务
缺点:通常版本不是最新的,兼容性比较泛
- 编译安装
步骤
- 下载 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 日志分割
- 编写
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})
- 启动
crontab
模块进行定时任务的编辑和执行
# 编辑用户定时任务
crontab -e
0 0 * * * /home/phjr/web-service/nginx/sh/phjr_logs.sh
# 查看用户定时任务
crontab -l
root 用户可直接修改
/etc/crontab
文件
注意点
- Nginx 主程序需要 root 启动,所以如果想通过普通用户启动
nginx
的话必须注释配 置文件nginx.conf
顶部的user root
配置,并不能占用1024
以下系统预留的端口号 - 如果是编码安装的,因为
configure
的时候已经设置了nginx
的安装位置,不能够通过压缩打包迁移,会出路径问题的,迁移必须重新编译安装并制定新的路径 - 编写 Linux Shell 脚本的时候注意行尾序列必须使用
LF
格式 - 启动
nginx
后,先在服务器上通过ps -ef | grep nginx
和curl xxx:xx
尝试下载查看是否启动成功,若是服务器可访问,外部不可访问,请查看防火墙设置,要么关闭防火墙要么设置开放相应端口号