一、熱升級流程
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)查看版本