nginx 源码安装与平滑升级
- php
- 2018-10-31
- 3034
- 0
Nginx 源码安装
目的
主要学习在Linux环境下源码编译安装Nginx软件,并进行在线升级操作;
安装1.10.1版本的Nginx
1. 下载软件包
wget http://nginx.org/download/nginx-1.10.1.tar.gz
2. 开始安装
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
./configure --prefix=/usr/local/nginx
make && make install
3. 启动与关闭
/usr/local/nginx/sbin/nginx -t # 测试配置是否有问题
/usr/local/nginx/sbin/nginx # 启动
/usr/local/nginx/sbin/nginx -s stop # 关闭,当然也可以通过Nginx信号量控制
4. 配置通过systemctl启动/关闭Nginx
- 在 /usr/lib/systemd/system 路径下创建nginx.service
- 编辑内容
Nginx信号量说明
通过编辑nginx.service文件可以发现,systemctl的命令操作主要是通过kill + 信号量 对Nginx进行操作的。
参数字段 | 说明 |
---|---|
TERM, INT | 立即关闭Nginx |
QUIT | 优雅关闭进程,如果当前有请求,处理完成之后再关闭 |
HUP | 改变配置文件以后不用重启,平滑的进行重启。 |
USR1 | 重读日志,在日志按月/日分割时有用 |
USR2 | 平滑的升级 |
WINCH | 它所做的是关闭特定进程号的主进程的下属的工作进程(配合USR2来进行升级) |
升级Nginx
Nginx安装最终会生成编译好的二进制文件,所以当需要开启新模块或者升级Nginx时,就需要重新编辑生成二进制文件。具体升级Nginx的步骤如下:
- 下载最新版本,wget http://nginx.org/download/nginx-1.15.5.tar.gz
- 解压缩,tar -zxvf nginx-1.15.5.tar.gz
- 检测环境,./configure —prefix=/usr/local/nginx
- 进行编译,make
- 编译之后即可,不需要安装了,
- 将编译后的objs/nginx 复制到Nginx安装目录的sbin下,cp -rfp objs/nginx /usr/local/nginx/sbin
- 检测整体配置是否OK,/usr/local/nginx/sbin/nginx -t [-c 配置路径]
- 更新,平滑重启
kill -USR2 ‘cat /usr/local/nginx/logs/nginx.pid’
kill -WINCH ‘cat /usr/local/nginx/logs/nginx.pid.oldbin’ // 关闭老版本master进程的worker进程
kill -QUIT ‘cat /usr/local/nginx/logs/nginx.pid.oldbin’ // 如果升级没问题,可以直接关掉旧版本的master;否则,关掉新版的,重启旧版本worker进行,完成回滚