nginx熱部署升級

1、熱升級流程
nginx

一、將舊nginx文件換成新的nginx二進制文件(注意備份);ide

二、想master進程發送USR2信號;網站

三、master進程修改pid文件名,加後綴.oldbin;spa

四、master進程用新nginx文件後啓動新master進程線程

五、向老master進程發送WINCH信號,關閉老worker進程;進程

六、回滾:向老master發送HUP信號,向新master發送QUIT;it

2、升級過程io

#版本編譯

nginx version: nginx/1.12.2ast

一、查看nginx狀態

2.png

二、升級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

備註:若是咱們升級完後檢查有問題,可採起進行下一步操做進行滾回。



三、回滾操做

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

相關文章
相關標籤/搜索