环境
服务器:192.168.10.181
系统:CentOS 6.0
当前Nginx版本:1.0.8
升级nginx版本:1.1.5
操作过程
1、切换至root用户
2、查看当前运行的Nginx的主进程
[root@Nginx canyouNgx]# ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'
3、备份旧版本
[root@Nginx canyouNgx]# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
4、解压Nginx-1.1.5源码包,执行模块配置
[root@Nginx nginx-1.1.5]# ./configure
5、编译安装新版本
[root@Nginx nginx-1.1.5]# make && make install
6、启动新版本的Nginx
发送 USR2 信号到旧版本的 PID,这样做会启动新版本,但是旧版本也不会退出, 两个版本会同时运行
[root@Nginx nginx-1.1.5]# kill -USR2 6294
7、关闭旧版本的nginx进程
发送 WINCH 信号到旧版本 PID,此时用 ps aux|grep nginx 可以看到旧版本 Nginx 的 worker 会逐渐退出,最后所有请求都会由新版本的 Nginx 处理
[root@Nginx nginx-1.1.5]# kill -WINCH 6294
8、彻底关闭旧版本
最后测试新版本没有问题后可以彻底停掉旧版本,发送 QUIT 信号到旧版本的 PID
[root@Nginx nginx-1.1.5]# kill -QUIT 6294
9、查看当前的nginx主进程号
[root@Nginx nginx-1.1.5]# ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'
10、查看当前的nginx版本
[root@Nginx nginx-1.1.5]# /usr/local/nginx/sbin/nginx -V
PS:
如果测试后想恢复到旧版本的话,发送 HUP 信号到旧版 PID
kill -HUP PID
关闭新版本,发送 QUIT 到新版本 PID,如果着急,也可以用 TERMkill -QUIT PID
最后把备份的 Nginx 替换回去rm -rf /usr/local/nginx/sbin/nginx
mv /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx