? ? ? ?大家好,我是一直默默努力的大齡程序媛大丫姨,今天要修復(fù)一些nginx的漏洞,查看官方解決方案有一些麻煩,干脆對nginx版本進行平滑升級,什么叫平滑升級,就是不停用nginx的情況下升級nginx版本,聽著有一些繞口,總之因為升級的是生產(chǎn),我也不想影響到用戶使用,因為nginx上部署了太多的映射。于是上網(wǎng)查了一下如何操作,得到了一個非常好的參考網(wǎng)址,文末放了參考鏈接。
ps:由于領(lǐng)導(dǎo)沒有給我root權(quán)限,導(dǎo)致我每一步都需要加sudo,藍瘦香菇,2-3步是為了了解nginx的現(xiàn)狀的,下面操作只是如何平滑升級,但是回退方法只能想看文末鏈接了,因為這個作者整理的真的非常好。
#1、最重要的一步,將nginx進行備份,我直接將整個安裝地址進行了壓縮
sudo tar -zcvf nginx20220325.tar.gz /usr/local/nginx
#2、查看一下nginx路徑
sudo ls -l /usr/local
#3、查看nignx的版本號
sudo /usr/local/nginx/sbin/nginx -V
#4、查看nginx的進程
ps aux | grep nginx
#5、將nginx上傳到該用戶指定目錄下,如、home/weblogic/nginx,因為我是同事給的包,所以我沒有從網(wǎng)上wget,此處省略
#6、進入到新的nginx版本里
tar -zxvf nginx-1.21.6.tar.gz
cd nginx-1.21.6
#7、根據(jù)當(dāng)前的配置可彈性修改configure要配置的模塊
./configure --prefix=/usr/local/nginx? --with-http_ssl_module
#8、按照,注意只執(zhí)行make
make
#9、將老的nginx進行備份
sudo cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
#10、查詢備份情況
sudo ls -l /usr/local/nginx/sbin
#11、查看nignx的版本號
sudo /usr/local/nginx/sbin/nginx -V
#12、進入到新的nginx的objs目錄下
cd objs/
#13、將新的nginx拷貝替換舊的
sudo cp -f nginx /usr/local/nginx/sbin/nginx
#14、查看nginx的進程
ps aux | grep nginx
#15、將進程進行修改,進程號注意修改,設(shè)定新的子進程開始接收用戶的訪問請求,舊的不再接受用戶的訪問請求
sudo kill -USR2 12567 11992
#16、查看nginx的進程
ps aux | grep nginx
#17、查看目前27007端口是否監(jiān)聽,有數(shù)據(jù)就是“雖然在監(jiān)聽,但實際不會處理新連接”進程號注意修改,
sudo lsof -p? 12567 | grep LISTEN
#18、查看nignx的版本號,此時應(yīng)該為新版本了
sudo /usr/local/nginx/sbin/nginx -V
#19、保留舊版本的master是為了方便回滾(當(dāng)然你可以發(fā)信號QUIT或者直接殺掉進程),此時如果再執(zhí)行以下操作將不能進行回退了。刪除舊版本的端口號,進程號注意修改,
sudo kill -WINCH 12567
sudo kill -QUIT? 12567
————————————————
參考鏈接:https://blog.csdn.net/shimiso/article/details/6045160