一文弄懂Nginx熱升級(jí)
1、熱升級(jí)步驟
- Nginx
- 備份原有nginx二進(jìn)制文件
- 拷貝新nginx二進(jìn)制文件到sbin目錄下
- 使用 kill -USR2 master進(jìn)程PID
- 使用kill -WINCH master進(jìn)程PID關(guān)閉老workr進(jìn)程
- 回退老master進(jìn)程時(shí)只需reload即可
OpenResty熱升級(jí)與Nginx相同
2、熱升級(jí)實(shí)現(xiàn)
備份舊版本Nginx二進(jìn)制文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
下載最新版本的 nginx,解壓后進(jìn)行編譯,將新版本的Nginx二進(jìn)制文件拷貝到舊版本的sbin目錄下
舊版本nginx二進(jìn)制文件編譯了那些庫(kù),新版本也要有相同的庫(kù),安裝地址也要相同
wget https://nginx.org/download/nginx-1.26.0.tar.gz tar -zxvf nginx-1.26.0.tar.gz cd nginx-1.26.0 ./configure make cp objs/nginx /usr/local/nginx/sbin/
查看 nginx 運(yùn)行狀況

發(fā)送信號(hào)使 nginx 的舊版本停止接收請(qǐng)求
kill -USR2 51393
再次查看 nginx 運(yùn)行狀況

發(fā)送USER2信號(hào)后master會(huì)重命名pid文件,在文件后添加oldbin后綴。然后master進(jìn)程會(huì)用新Nginx文件啟動(dòng)一個(gè)新的master進(jìn)程,

發(fā)送WINCH信號(hào)給舊master進(jìn)程,優(yōu)雅的關(guān)閉舊worker進(jìn)程
kill -WINCH 51393
再次檢查進(jìn)程情況,舊master的worker已經(jīng)關(guān)閉了,舊master不會(huì)自己退出,用作版本回退

確認(rèn)正常后,可以關(guān)閉舊master
kill -QUIT 51393
3、升級(jí)失敗回退
用于nginx升級(jí)失敗立馬回退版本,如果沒(méi)有備份只能再走一起熱升級(jí),回退版本。
使用備份文件覆蓋新版本Nginx二進(jìn)制文件
mv /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx
向舊版本master進(jìn)程發(fā)送HUP信號(hào),拉起worker進(jìn)程
kill -HUP 51393

發(fā)送USR2信號(hào),停止新版本master進(jìn)程接收請(qǐng)求
kill -USR2 53976
關(guān)閉新版本的服務(wù)進(jìn)程
kill -WINCH 53976

退出新版本進(jìn)程
kill -QUIT 53976
再次查看,新版本的master進(jìn)行已停止

到此這篇關(guān)于一文弄懂Nginx熱升級(jí)的文章就介紹到這了,更多相關(guān)Nginx熱升級(jí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯(cuò)誤的解決方法
這篇文章主要介紹了PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯(cuò)誤的解決方法,涉及nginx平臺(tái)的相關(guān)配置技巧,需要的朋友可以參考下2016-05-05
nginx配置多個(gè)站點(diǎn)共用80端口的解決方法
這篇文章主要介紹了nginx配置多個(gè)站點(diǎn)共用80端口的解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
Nginx服務(wù)器下配置個(gè)性二級(jí)域名及多個(gè)域名的實(shí)例講解
這篇文章主要介紹了Nginx服務(wù)器下配置個(gè)性二級(jí)域名及多個(gè)域名的實(shí)例講解,注意一下rewrite的寫(xiě)法規(guī)則,需要的朋友可以參考下2016-01-01

