不停服務情況下公升級nginx

2022-07-20 21:27:22 字數 1367 閱讀 5391

第三方支付平台因安全問題對nginx做了公升級操作,為了不影響業務,整個操作過程都不能停服務,因此對公升級方法做出了要求。以下為我整理的生產環境實際操作方法,已在第三方支付平台上成功應用,希望對即將或者可能涉及nginx公升級操作的同事有所幫助。

nginx公升級步驟:

步驟一:檢視原版本及已安裝模組和程序號。

ps aux|grep nginx

/payment/nginx/sbin/nginx –v

步驟三:備份舊版本的執行程式。

tar -cvf /payment/bak/nginx.sbin.20140115.tar /payment/nginx/sbin/

步驟四:編譯新版本,增刪模組。

tar zxvf /payment/bak/nginx-1.4.3.tar.gz

cd /payment/bak/nginx-1.4.3

./configure --prefix=/payment/nginx

make

make install

步驟五:替換。

kill -usr2 21727

ll /payment/nginx/logs/nginx*

ps aux|grep nginx

kill -winch 21727

一段時間之後,舊的工作程序(worker process)處理了所有已連擊的請求後推出,僅由新的工作程序(worker process)來處理請求了。

步驟六:決定使用新版本還是恢復到舊版本。

使用新版本:kill -quit 21727

新的主程序退出後,舊的主程序會移除.oldbin字尾,恢復為他的.pid檔案,這樣,一切就都恢復為公升級之前了。 如果嘗試公升級成功,而自己又希望保留新版本時,可傳送quit訊號給舊的主程序,使其退出而只留下新的程序執行:kill -quit 舊主程序號。

為了能夠更加安全,往往採用隱藏軟體版本號的方法,此處插入步驟七,對版本號進行隱藏。

步驟七:備份配置檔案並隱藏版本號

(1)備份:tar -cvf /payment/bak/nginx.conf.20140115.tar /payment/nginx/conf/

(2)vi /payment/nginx/conf/nginx.conf

http中加入:

server_tokens off;

vi /payment/nginx/conf/fastcgi.conf

修改:fastcgi_param  server_software    nginx/$nginx_version;

為fastcgi_param  server_software    nginx;

./nginx -s reload

驗證:curl --head 127.0.0.1

在保證Nginx正常處理請求的情況下公升級Nginx

nginx是乙個功能強大的web伺服器,用於服務於世界上許多最受歡迎的站點。在本部落格中,我將演示如何在不丟失客戶端連線的情況下公升級nginx可執行檔案。nginx通過在服務啟動時生成主程序來工作。同時,主服務會啟動乙個或多個處理實際客戶端連線的工作程序。nginx旨在在收到管理員發出的特定訊號時...

Nginx不停機優雅公升級

最近線上執行的遊戲越來越多,雲服務商也給我推送提示系統公升級,漏洞補丁公升級,也有nginx更新的。有一些比較關鍵性的系統補丁需要立即更新處理,有一些可以換一換不用公升級,但此nginx公升級的需求比較迫切,但更新可能需要重啟nginx。這將會影響到我們這樣的乙個登入業務邏輯 如果暴力熱更新公升級n...

docker 無網情況下安裝nginx

從這個裡找下的快 去沒網路的伺服器 docker load i nginx.tar 載入 這個匯入預設沒映象名 docker import nginx 1.15.tar nginx imp 這個指定映象名 docker run d name nginx hub.c.163.com library n...