nginx版本升級

admin Nginx1 877字數(shù) 1771閱讀模式

1、需求

因為一些原因,比如說 nginx發(fā)現(xiàn)漏洞、應(yīng)用一些新的模塊等等,想對 Nginx 的版本進行更新,最簡單的做法就是停止當前的Nginx服務(wù),然后開啟新的Nginx服務(wù)。但是這樣會導(dǎo)致在一段時間內(nèi),用戶是無法訪問服務(wù)器。
為了解決這個問題,我們就需要用到Nginx服務(wù)器提供的平滑升級功能。這個也是Nginx的一大特點,使用這種方式,就可以使 Nginx 在 7*24 小時不間斷的提供服務(wù)了。

2、需求

Nginx 的版本最開始使用的是 Nginx-1.18.0 , 由于服務(wù)升級,需要將 Nginx 的版本升級到Nginx-1.19.7
,要求 Nginx 不能中斷提供服務(wù)。
為了應(yīng)對上述的需求,提供兩種解決方案:
方案1: make upgrade 完成升級
方案2: 服務(wù)信號 完成升級

3、nginx 版本升級

3.1、環(huán)境說明
當前是 CentOS7 服務(wù)器。
點擊進入 nginx 下載頁面
3.2、環(huán)境準備
1)已安裝的 Nginx 版本信息

nginx -V
或者
/usr/local/nginx/sbin/nginx -V

2)下載當前最新版本?nginx-1.19.7,并通過Xftp上傳至服務(wù)器,然后執(zhí)行解壓命令。

tar -zxvf nginx-1.19.7.tar.gz

如下圖所示:
nginx版本升級
3)解壓后,對最新版 nginx 進行配置
(1)查看現(xiàn)有版本(老版本)nginx 的?configure?配置信息

nginx -V

如圖所示,得到 configure?的配置信息。
nginx版本升級
(2)然后,再對新版 nginx 進行配置。

./configure  --prefix=/usr/local/nginx

如下圖所示:
nginx版本升級
4)接著,進行 make

make

進行編譯,切記千萬不要輸入make install?,如下圖所示:
nginx版本升級
5)這樣,最新版本nginx的目錄下會多出來一個objs目錄,如下圖所示:
nginx版本升級
6)對老版本 sbin 目錄下的 nginx 進行備份:

mv /usr/local/nginx/sbin/nginx   /usr/local/nginx/sbin/nginx.old

如下圖所示:
nginx版本升級
7)將編譯好的objs目錄下的nginx文件,復(fù)制到/usr/local/nginx/sbin目錄。

cp /root/nginx-1.19.7/objs/nginx   /usr/local/nginx/sbin/nginx

如下圖所示:
nginx版本升級
3.3、方案1:make upgrade 命令升級
1)對 nginx 升級

make upgrade

如下圖所示:
nginx版本升級
2)查看升級后的版本

/usr/local/nginx/sbin/nginx  -V

可以看到升級成功,并且過程中服務(wù)不中斷,如下圖所示:
nginx版本升級
5)通過瀏覽器可以訪問到nginx的主頁。
如下圖所示:
nginx版本升級
3.4、方案2:服務(wù)信號升級
1)平滑重啟升級nginx
發(fā)送信號USR2Nginx1.18.0?版本對應(yīng)的 master 進程。

kill -USR2 `cat /usr/local/nginx/log/nginx.pid`

舊版本 Nginx 的 pid 變?yōu)?oldbin ,這是舊版本和新版本的 nginx 同時運行,過一端時間等就 nginx 處理完用戶請求后,執(zhí)行下面操作從容關(guān)閉舊版本的 Nginx 進程。
2)從容關(guān)閉舊版本的Nginx進程

kill -WINCH `cat /usr/local/nginx/log/nginx.oldbin`

3)決定是否升級到新版的 nginx
發(fā)送信號?QUIT?Nginx 的?1.18.0?版本對應(yīng)的 master 進程。

## nginx在不重載配置文件啟動工作進程
kill -HUP `cat /usr/local/nginx/log/nginx.oldbin`  
## 關(guān)閉舊版nginx
kill -QUIT `cat/usr/local/nginx/log/nginx.oldbin`

4)驗證nginx是否升級成功

/usr/local/nginx/sbin/nginx -V

4、總結(jié)

在整個過程中,Nginx 是一直對外提供服務(wù)的。并且當 Nginx 的服務(wù)器啟動成功后,我們是可以通過瀏覽器進行直接訪問的,同時我們可以通過更改 html 目錄下的頁面來修改我們在頁面上所看到的內(nèi)容,那么問題來了,為什么我們要修改 htm l目錄下的文件,能不能多添加一些頁面是 Nginx 的功能更加豐富,還有前面聊到Nginx 的前端功能又是如何來實現(xiàn)的,這就需要我們對 Nginx 的核心配置文件進行一個詳細的學(xué)習(xí)。

版權(quán)聲明:文章圖片資源來源于網(wǎng)絡(luò),如有侵權(quán),請留言刪除!!!
廣告也精彩
admin
  • 本文由 發(fā)表于 2023年2月6日 20:56:48
  • 轉(zhuǎn)載請務(wù)必保留本文鏈接:http://yudch.cn/9971.html
評論  1  訪客  1
    • 匿名
      匿名 4

      小白還是不好下手

    匿名

    發(fā)表評論

    匿名網(wǎng)友 填寫信息

    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: