佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > 圖文詳解Nginx版本平滑升級(jí)方案

圖文詳解Nginx版本平滑升級(jí)方案

熱門標(biāo)簽:百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 檢查注冊(cè)表項(xiàng) 使用U盤裝系統(tǒng) 阿里云 硅谷的囚徒呼叫中心 網(wǎng)站建設(shè) 智能手機(jī) 美圖手機(jī)

背景:

由于負(fù)載均衡測(cè)試服務(wù)器中nginx版本過低,存在安全漏洞,查詢相關(guān)修復(fù)漏洞資料,需要采取nginx版本升級(jí)形式對(duì)漏洞進(jìn)行修復(fù)。

Nginx平滑升級(jí)方案

1、案例采用版本介紹

舊版本 nginx-1.12.2.tar.gz

新版本 nginx-1.20.1.tar.gz

2、nginx-1.12.2版本為當(dāng)前運(yùn)行版本


設(shè)置端口8080和對(duì)主頁index.html進(jìn)行修改,后續(xù)進(jìn)行平滑升級(jí)后,依然可以對(duì)其訪問。

3、解壓新版本 nginx-1.20.1.tar.gz編譯安裝至舊版本nginx-1.12.2目錄下,運(yùn)行原有nginx.conf配置文件,執(zhí)行如下

./configure --prefix=/usr/local/nginx-1.12.2  --conf-path=/usr/local/nginx-1.12.2/nginx.conf --pid-path=/usr/local/nginx-1.12.2/nginx.pid --user=ngadm --group=ngadm --with-http_stub_status_module --without-http_rewrite_module 

make && make install

4、完成后1.20.1版本會(huì)自動(dòng)在原sbin目錄下生產(chǎn)新的nginx二進(jìn)制文件,舊的nginx會(huì)自動(dòng)被替換成nginx.old

5、平滑升級(jí)

Nginx對(duì)進(jìn)程的控制能力非常強(qiáng)大,可以通過信號(hào)指令控制進(jìn)程。常用的信號(hào)有:

  • -QUIT,表處理完當(dāng)前請(qǐng)求后,關(guān)閉進(jìn)程。
  • -HUP,表示重新加載配置,也就是關(guān)閉原有的進(jìn)程,并開啟新的工作進(jìn)程。此操作不會(huì)中斷用戶的訪問請(qǐng)求,因此可以通過此信號(hào)平滑的重啟Nginx。
  • -USR2,用于平滑升級(jí)可執(zhí)行程序。
  • -WINCH,從容關(guān)閉工作進(jìn)程。

根據(jù)nginx進(jìn)程控制信號(hào),執(zhí)行如下:

kill -USR2 38323(舊進(jìn)程PID為38323)
ps -ef |grep nginx 

切換為新的master進(jìn)程,關(guān)閉舊的work進(jìn)程,注意此時(shí)舊的master進(jìn)程依然存在,執(zhí)行如下:

kill –WINCH 38323 (舊進(jìn)程PID為38323)
ps -ef |grep nginx

檢查此時(shí)版本

sbin/nginx -v

已平滑升級(jí)成功。

注意:此時(shí)新版本nginx的masterPID為41063,同時(shí)也存在舊版本的master進(jìn)程(舊進(jìn)程PID為38323),若無需再回退時(shí)操作,可執(zhí)行舊進(jìn)程退出操作,執(zhí)行如下:

kill –QUIT 38323 

回退步驟

關(guān)于回退操作分為兩類:

1、事前對(duì)舊版本nginx進(jìn)行備份,若出現(xiàn)問題,直接將舊版本重新拷貝會(huì)/usr/local目錄下,重啟nginx舊版本操作,執(zhí)行如下:

killall nginx
cp nginx-1.12.2.bak nginx-1.12.2
/usr/local/nginx-1.12.2/sbin/nginx –c /usr/local/nginx-1.12.2/nginx.conf

檢查nginx狀態(tài)
ps –ef |grep nginx

2、在新版本nginx的master進(jìn)程和舊版本的master進(jìn)程同時(shí)存在時(shí),執(zhí)行如下:

切換回舊版本的master進(jìn)程

kill -HUP 舊masterPID

關(guān)閉新版本nginx的master進(jìn)程,并將原sbin目錄下的nginx.old(舊版本nginx二進(jìn)制文件)重新改回nginx,以便管理nginx。

kill -WINCH 新masterPID
kill -QUIT 新masterPID
cp /usr/local/nginx-1.12.2/sbin/nginx.old /usr/local/nginx-1.12.2/sbin/nginx

再次確認(rèn)此時(shí)nginx版本已退回原版本

sbin/nginx -v

總結(jié)

到此這篇關(guān)于Nginx版本平滑升級(jí)方案的文章就介紹到這了,更多相關(guān)Nginx版本平滑升級(jí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:煙臺(tái) 湖北 湘潭 懷化 山南 黃山 賀州 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《圖文詳解Nginx版本平滑升級(jí)方案》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    阳高县| 大荔县| 吴川市| 封丘县| 饶阳县| 珠海市| 彭泽县| 昌图县| 昌宁县| 阜宁县| 连山| 阳春市| 平定县| 招远市| 宁海县| 化州市| 江孜县| 探索| 三河市| 山东省| 徐州市| 静乐县| 嘉峪关市| 清新县| 汝城县| 万源市| 景泰县| 玉林市| 门头沟区| 分宜县| 会泽县| 城口县| 定安县| 阿巴嘎旗| 福建省| 临颍县| 延寿县| 历史| 碌曲县| 通江县| 广元市|