nginx熱部署升級

一、熱升級流程

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.png

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/

3.png

4)發送升級信號給進程號

# kill -USR2 1501     #master線程

4.png


5)優雅關閉老線程

# kill -WINCH 1501

7.png

備註:保留舊master線程,可以用作回滾使用,如果確認不需要,可以kill掉

4)查看版本

8.png

備註:如果我們升級完後檢查有問題,可採取進行下一步操作進行滾回。



3、回滾操作

1)重會備份文件

# cp -f  /usr/local/nginx12/sbin/nginx.old /usr/local/nginx12/sbin/nginx

2)執行平滑造成,生成新的進程

# kill -HUP 4197

# kill -QUIT 4197

9.png

master進程回滾到1501,worker進程也重新生成了,檢查網站沒問題到此完成回滾操作。

3)查看版本

10.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章