1、需求
因?yàn)橐恍┰?,比如說(shuō) nginx發(fā)現(xiàn)漏洞、應(yīng)用一些新的模塊等等,想對(duì) Nginx 的版本進(jìn)行更新,最簡(jiǎn)單的做法就是停止當(dāng)前的Nginx服務(wù),然后開(kāi)啟新的Nginx服務(wù)。但是這樣會(huì)導(dǎo)致在一段時(shí)間內(nèi),用戶(hù)是無(wú)法訪問(wèn)服務(wù)器。
為了解決這個(gè)問(wèn)題,我們就需要用到Nginx服務(wù)器提供的平滑升級(jí)功能。這個(gè)也是Nginx的一大特點(diǎn),使用這種方式,就可以使 Nginx 在 7*24 小時(shí)不間斷的提供服務(wù)了。
2、需求
Nginx 的版本最開(kāi)始使用的是 Nginx-1.18.0 , 由于服務(wù)升級(jí),需要將 Nginx 的版本升級(jí)到Nginx-1.19.7
,要求 Nginx 不能中斷提供服務(wù)。
為了應(yīng)對(duì)上述的需求,提供兩種解決方案:
方案1: make upgrade 完成升級(jí)
方案2: 服務(wù)信號(hào) 完成升級(jí)文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
3、nginx 版本升級(jí)
3.1、環(huán)境說(shuō)明
當(dāng)前是 CentOS7 服務(wù)器。
點(diǎn)擊進(jìn)入 nginx 下載頁(yè)面
3.2、環(huán)境準(zhǔn)備
1)已安裝的 Nginx 版本信息文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
nginx -V 或者 /usr/local/nginx/sbin/nginx -V
2)下載當(dāng)前最新版本?nginx-1.19.7
,并通過(guò)Xftp上傳至服務(wù)器,然后執(zhí)行解壓命令。文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
tar -zxvf nginx-1.19.7.tar.gz
如下圖所示:
3)解壓后,對(duì)最新版 nginx 進(jìn)行配置
(1)查看現(xiàn)有版本(老版本)nginx 的?configure
?配置信息文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
nginx -V
如圖所示,得到 configure
?的配置信息。
(2)然后,再對(duì)新版 nginx 進(jìn)行配置。文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
./configure --prefix=/usr/local/nginx
如下圖所示:
4)接著,進(jìn)行 make文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
make
進(jìn)行編譯,切記千萬(wàn)不要輸入make install?,如下圖所示:
5)這樣,最新版本nginx的目錄下會(huì)多出來(lái)一個(gè)objs目錄,如下圖所示:
6)對(duì)老版本 sbin 目錄下的 nginx 進(jìn)行備份:文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
如下圖所示:
7)將編譯好的objs目錄下的nginx文件,復(fù)制到/usr/local/nginx/sbin目錄。文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
cp /root/nginx-1.19.7/objs/nginx /usr/local/nginx/sbin/nginx
如下圖所示:
3.3、方案1:make upgrade 命令升級(jí)
1)對(duì) nginx 升級(jí)文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
make upgrade
如下圖所示:
2)查看升級(jí)后的版本文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
/usr/local/nginx/sbin/nginx -V
可以看到升級(jí)成功,并且過(guò)程中服務(wù)不中斷,如下圖所示:
5)通過(guò)瀏覽器可以訪問(wèn)到nginx的主頁(yè)。
如下圖所示:
3.4、方案2:服務(wù)信號(hào)升級(jí)
1)平滑重啟升級(jí)nginx
發(fā)送信號(hào)USR2給 Nginx 的1.18.0?版本對(duì)應(yīng)的 master 進(jìn)程。文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
kill -USR2 `cat /usr/local/nginx/log/nginx.pid`
舊版本 Nginx 的 pid 變?yōu)?oldbin ,這是舊版本和新版本的 nginx 同時(shí)運(yùn)行,過(guò)一端時(shí)間等就 nginx 處理完用戶(hù)請(qǐng)求后,執(zhí)行下面操作從容關(guān)閉舊版本的 Nginx 進(jìn)程。
2)從容關(guān)閉舊版本的Nginx進(jìn)程文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
kill -WINCH `cat /usr/local/nginx/log/nginx.oldbin`
3)決定是否升級(jí)到新版的 nginx
發(fā)送信號(hào)?QUIT?給 Nginx 的?1.18.0?版本對(duì)應(yīng)的 master 進(jìn)程。文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
## nginx在不重載配置文件啟動(dòng)工作進(jìn)程 kill -HUP `cat /usr/local/nginx/log/nginx.oldbin` ## 關(guān)閉舊版nginx kill -QUIT `cat/usr/local/nginx/log/nginx.oldbin`
4)驗(yàn)證nginx是否升級(jí)成功文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
/usr/local/nginx/sbin/nginx -V
4、總結(jié)
在整個(gè)過(guò)程中,Nginx 是一直對(duì)外提供服務(wù)的。并且當(dāng) Nginx 的服務(wù)器啟動(dòng)成功后,我們是可以通過(guò)瀏覽器進(jìn)行直接訪問(wèn)的,同時(shí)我們可以通過(guò)更改 html 目錄下的頁(yè)面來(lái)修改我們?cè)陧?yè)面上所看到的內(nèi)容,那么問(wèn)題來(lái)了,為什么我們要修改 htm l目錄下的文件,能不能多添加一些頁(yè)面是 Nginx 的功能更加豐富,還有前面聊到Nginx 的前端功能又是如何來(lái)實(shí)現(xiàn)的,這就需要我們對(duì) Nginx 的核心配置文件進(jìn)行一個(gè)詳細(xì)的學(xué)習(xí)。文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html 文章源自網(wǎng)吧系統(tǒng)維護(hù)-http://www.ykday.cn/9971.html
1F
小白還是不好下手