一文弄懂Nginx熱升級
1、熱升級步驟
- 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熱升級與Nginx相同
2、熱升級實(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)制文件編譯了那些庫,新版本也要有相同的庫,安裝地址也要相同
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ā)送信號使 nginx 的舊版本停止接收請求
kill -USR2 51393
再次查看 nginx 運(yùn)行狀況
發(fā)送USER2信號后master會重命名pid文件,在文件后添加oldbin后綴。然后master進(jìn)程會用新Nginx文件啟動一個(gè)新的master進(jìn)程,
發(fā)送WINCH信號給舊master進(jìn)程,優(yōu)雅的關(guān)閉舊worker進(jìn)程
kill -WINCH 51393
再次檢查進(jìn)程情況,舊master的worker已經(jīng)關(guān)閉了,舊master不會自己退出,用作版本回退
確認(rèn)正常后,可以關(guān)閉舊master
kill -QUIT 51393
3、升級失敗回退
用于nginx升級失敗立馬回退版本,如果沒有備份只能再走一起熱升級,回退版本。
使用備份文件覆蓋新版本Nginx二進(jìn)制文件
mv /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx
向舊版本master進(jìn)程發(fā)送HUP信號,拉起worker進(jìn)程
kill -HUP 51393
發(fā)送USR2信號,停止新版本master進(jìn)程接收請求
kill -USR2 53976
關(guān)閉新版本的服務(wù)進(jìn)程
kill -WINCH 53976
退出新版本進(jìn)程
kill -QUIT 53976
再次查看,新版本的master進(jìn)行已停止
到此這篇關(guān)于一文弄懂Nginx熱升級的文章就介紹到這了,更多相關(guān)Nginx熱升級內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx學(xué)習(xí)之靜態(tài)文件服務(wù)器配置方法
本篇文章主要介紹了Nginx學(xué)習(xí)之靜態(tài)文件服務(wù)器配置方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02nginx?Rewrite重寫地址的實(shí)現(xiàn)
本文主要介紹了nginx?Rewrite重寫地址的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07