Nginx平滑升級

Nginx平滑升級

有時候咱們可能須要對Nginx進行升級,例如檢測到Nginx漏洞,或者由於業務須要等狀況。
下面我就來講一下Nginx平滑升級步驟
整個升級過程當中,無需中止Nginx服務,不會影響到業務
需求模擬:nginx-1.18.0 =》nginx-1.19.0
環境說明:
系統版本:Centos7.7
Nginx版本:nginx-1.18.0nginx

(一)編譯新版本nginxxcode

注意:無需執行make install,一旦執行make install會致使原nginx程序異常
如需驗證nginx業務是否有受到影響,請跳轉至第三步bash

tar -zxvf nginx-1.19.0.tar.gz
cd nginx-1.19.0/
./configure --prefix=/usr/local/nginx
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak    #原nginx可執行文件備份
cp objs/nginx /usr/local/nginx/sbin/nginx    #新版本的nginx編譯後,會在objs目錄下生成一個可執行nginx文件,使用該文件代替原nginx可執行文件
make upgrade    #執行升級,原nginx要求使用絕對路徑運行,以下圖。執行到這裏就算是升級完成了

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 (二)確認是否升級成功curl

比較簡單的辦法,就是直接nginx -V查看一下版本信息,以下。能夠能夠看到升級到1.19版本了ide

[root@bp nginx-1.19.0]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.19.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
configure arguments: --prefix=/usr/local/nginx

(三)驗證nginx業務是否受到影響ui

我寫了個腳本檢測nginx頁面返回碼,以下url

[root@bp ~]# cat nginxcode.sh 
#!/bin/bash
while (true)
do
    curl --silent -I 106.13.13.242|grep 200 >> code.txt
done
[root@bp ~]# nohup ./nginxcode.sh &
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
。。。

在平滑升級過程當中,另開一個窗口查看腳本輸出狀況,該腳本正常狀況下會一直輸出200返回碼,即說明nginx業務未受影響code

相關文章
相關標籤/搜索