1. 程式人生 > 其它 >Linux centos7 nginx 平滑升級

Linux centos7 nginx 平滑升級

2021-08-19
為了方便讀者的閱讀,該文通篇使用絕對路徑,各位朋友們在實際上操作中可以根據實際情況編寫路徑(#^.^#)
1. 當前環境

# system
cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

# nginx
./nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
configure arguments: --prefix=/home/tomcat/app/nginx


2. 下載

# 下載新版的 nginx,版本為 1.18
.0 wget -P /home/tomcat/bag/ http://nginx.org/download/nginx-1.18.0.tar.gz


3. 升級

# 解壓到指定資料夾下
tar -zxf nginx-1.18.0.tar.gz -C /home/tomcat/app/

# 到解壓目錄下
cd /home/tomcat/app/nginx-1.18.0 

# 預編譯,老版用到了什麼模組,這裡也要加上的,我前一版預編譯也是這樣進行的
.
/configure --prefix=/home/tomcat/app/nginx/

出現這樣的提示資訊後就可以進行編譯了

# 編譯
make

注意不要 make install ,因為這會覆蓋安裝新版本的 nginx。
做完上面的步驟就可以開始升級了
首先我們要將老版的 nginx 備份

cd /home/tomcat/app/nginx/sbin

# 開啟 nginx 服務
./nginx

# 備份
mv nginx nginx1.16.1

然後將新版的執行檔案複製到這個資料夾下

cd /home/tomcat/app/nginx-1.18.0/objs
cp nginx /home/tomcat/app/nginx/sbin

現在就可以進行平滑升級操作了

# 檢視當前 nginx 程序號
ps -ef | grep nginx

# 平滑開啟新的 nginx 服務,此時新的 master 程序已經正常開啟,但老的 work 程序也存在
kill -USR2 主程序號
# 將老的 work 程序平滑停止
kill -WINCH 老版worker 程序號
# 關閉老的 nginx master程序
kill -QUIT 老版主程序號


至此,平滑升級結束,可以看到 nginx 服務並沒有受到影響(因為我部署了負載均衡,所以開啟是這個介面)







本文來自部落格園,作者:元月二一,轉載請註明原文連結:https://www.cnblogs.com/ljq225/p/15163000.html