一、热升级流程
1、将旧nginx文件换成新的nginx二进制文件(注意备份);
2、想master进程发送USR2信号;
3、master进程修改pid文件名,加后缀.oldbin;
4、master进程用新nginx文件后启动新master进程
5、向老master进程发送WINCH信号,关闭老worker进程;
6、回滚:向老master发送HUP信号,向新master发送QUIT;
二、升级过程
#版本
nginx version: nginx/1.12.2
1、查看nginx状态
2、升级nginx版本即升级二进制文件
路径:/nginx/sbin/nginx
1)备份原来的文件,更换上新的nginx二进制文件
# cp sbin/nginx sbin/nginx.old
2)编译新版本到make后,复制二进制nginx文件(切记需要编译到同一个目录)
# cd nginx-1.14.2/
# ./configure --prefix=/usr/local/nginx12
3make
# cp -r objs/nginx /usr/local/nginx12/sbin/ -f
3)查看二进制文件
cd /usr/local/nginx/sbin/
4)发送升级信号给进程号
# kill -USR2 1501 #master线程
5)优雅关闭老线程
# kill -WINCH 1501
备注:保留旧master线程,可以用作回滚使用,如果确认不需要,可以kill掉
4)查看版本
备注:如果我们升级完后检查有问题,可采取进行下一步操作进行滚回。
3、回滚操作
1)重会备份文件
# cp -f /usr/local/nginx12/sbin/nginx.old /usr/local/nginx12/sbin/nginx
2)执行平滑造成,生成新的进程
# kill -HUP 4197
# kill -QUIT 4197
master进程回滚到1501,worker进程也重新生成了,检查网站没问题到此完成回滚操作。
3)查看版本