有时候需要增加某些模块,又不能影响现有的业务,所以就必须要平滑升级Nginx,过程如下:
1、查看现有的nginx编译参数
/usr/local/nginx/sbin/nginx -V
2、按照安装nginx的方法进行安装,只需要到make,千万不要make install
3、备份旧版本的nginx可执行文件(期间nginx不会停止服务)
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
4、复制新的nginx二进制文件,进入新的nginx源码包
cp objs/nginx /usr/local/nginx/sbin/
5、测试新版本的nginx是否正常
/usr/local/nginx/sbin/nginx -t
6、给nginx发送平滑迁移信号(若不清楚pid路径,请查看nginx配置文件)
kill -USR2 `cat /var/run/nginx.pid`
7、查看nginx pid,会出现一个nginx.pid.oldbin
8、从容关闭旧的Nginx进程
kill -WINCH `cat /var/run/nginx.pid.oldbin`
9、此时不重载配置启动旧的工作进程
kill -HUP `cat /var/run/nginx.pid.oldbin`
10、结束工作进程,完成此次升级
kill -QUIT `cat /var/run/nginx.pid.oldbin`
11、验证Nginx是否升级成功
/usr/local/nginx/sbin/nginx -V