nginx版本升級

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

1、需求

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

2、需求

Nginx 的版本最開始使用的是 Nginx-1.18.0 , 由于服務升級,需要將 Nginx 的版本升級到Nginx-1.19.7
,要求 Nginx 不能中斷提供服務。
為了應對上述的需求,提供兩種解決方案:
方案1: make upgrade 完成升級
方案2: 服務信號 完成升級文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

3、nginx 版本升級

3.1、環(huán)境說明
當前是 CentOS7 服務器。
點擊進入 nginx 下載頁面
3.2、環(huán)境準備
1)已安裝的 Nginx 版本信息文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

2)下載當前最新版本?nginx-1.19.7,并通過Xftp上傳至服務器,然后執(zhí)行解壓命令。文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

tar -zxvf nginx-1.19.7.tar.gz

如下圖所示:
nginx版本升級
3)解壓后,對最新版 nginx 進行配置
(1)查看現(xiàn)有版本(老版本)nginx 的?configure?配置信息文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

nginx -V

如圖所示,得到 configure?的配置信息。
nginx版本升級
(2)然后,再對新版 nginx 進行配置。文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

如下圖所示:
nginx版本升級
4)接著,進行 make文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

make

進行編譯,切記千萬不要輸入make install?,如下圖所示:
nginx版本升級
5)這樣,最新版本nginx的目錄下會多出來一個objs目錄,如下圖所示:
nginx版本升級
6)對老版本 sbin 目錄下的 nginx 進行備份:文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

如下圖所示:
nginx版本升級
7)將編譯好的objs目錄下的nginx文件,復制到/usr/local/nginx/sbin目錄。文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

如下圖所示:
nginx版本升級
3.3、方案1:make upgrade 命令升級
1)對 nginx 升級文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

make upgrade

如下圖所示:
nginx版本升級
2)查看升級后的版本文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

可以看到升級成功,并且過程中服務不中斷,如下圖所示:
nginx版本升級
5)通過瀏覽器可以訪問到nginx的主頁。
如下圖所示:
nginx版本升級
3.4、方案2:服務信號升級
1)平滑重啟升級nginx
發(fā)送信號USR2Nginx1.18.0?版本對應的 master 進程。文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

舊版本 Nginx 的 pid 變?yōu)?oldbin ,這是舊版本和新版本的 nginx 同時運行,過一端時間等就 nginx 處理完用戶請求后,執(zhí)行下面操作從容關閉舊版本的 Nginx 進程。
2)從容關閉舊版本的Nginx進程文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

3)決定是否升級到新版的 nginx
發(fā)送信號?QUIT?Nginx 的?1.18.0?版本對應的 master 進程。文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

4)驗證nginx是否升級成功文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

4、總結

在整個過程中,Nginx 是一直對外提供服務的。并且當 Nginx 的服務器啟動成功后,我們是可以通過瀏覽器進行直接訪問的,同時我們可以通過更改 html 目錄下的頁面來修改我們在頁面上所看到的內容,那么問題來了,為什么我們要修改 htm l目錄下的文件,能不能多添加一些頁面是 Nginx 的功能更加豐富,還有前面聊到Nginx 的前端功能又是如何來實現(xiàn)的,這就需要我們對 Nginx 的核心配置文件進行一個詳細的學習。文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html 文章源自網吧系統(tǒng)維護-http://hvig.cn/9971.html

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

      小白還是不好下手

    匿名

    發(fā)表評論

    匿名網友 填寫信息

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