軟體新版有了更棒的功能?當前版本有安全漏洞?架構調整,需要新版本來支援?這些場景是不是很熟悉?你可能條件反射的就說出:「公升級版本啊!」是的,運維人永遠無法避免的乙個工作就是軟體的版本公升級
本文舉例nginx1.13.9公升級到1.14.2版本,nginx主程序id是1533
將當前的nginx安裝目錄備份一下,以防外一
下版本,已經是1.14.2了
kill -usr2 1533(舊版本主程序id)舊版本nginx的主程序將重新命名它的.pid檔案為.oldbin(如下面截圖)然後會執行新版本的nginx可執行程式,依次啟動新版本的主程序和新的worker程序(如下面截圖,4657就是新版本nginx的主程序)此時,新舊版本的nginx例項會同時執行,共同處理輸入的請求。
開始停老版本nginx的例項,傳送winch訊號給老版本nginx的程序,從容關閉老版本nginx的worker程序(主程序不關閉)kill -winch 1533(舊版本主程序id)一段時間之後,老版本的工作程序處理完自己所有已連線的請求後退出,由新版本的工作程序來處理輸入的請求。下面截圖可以看到。老版本nginx的worker程序已經都不在了,只剩主程序還在
此時,可以決定是使用新版本還是恢復到舊版本kill -quit 1533(舊版本主程序id)這樣就只剩下新版本nginx的程序了,如下面截圖
kill -hup 1533(舊版本主程序id)【舊版本nginx會在不過載配置檔案情況下啟動工作程序】kill -quit 4657 (新版本主程序id)【從容關閉新版本nginx的worker程序】kill -term 4657(新版本主程序id)【強制退出新版本的nginx】
nginx平滑重啟與平滑公升級的方法
如何實現nginx平滑重啟與平滑公升級?平滑重啟 kill hup cat usr local www nginx logs nginx.pid 平滑公升級nginx 得到編譯引數 用上面這段編譯 然後make,千萬別make install make完了 在objs目錄下就多了個nginx,這個就...
Nginx 平滑重啟
nginx s reload沒錯就是這個命令。適用的場景,一般我們 都或多或少跑著一些專案,有正式執行的,有測試的,那這就不能隨便讓這些專案宕掉。這就用到nginx的平滑重啟,而不是簡單粗暴的kill。假如我們修改了配置檔案,想要實現平滑重啟的效果,首先就要對配置檔案做驗證。nginx t 檢測完畢...
nginx重啟 平滑重啟
進入 ngiinx sbin目錄下 nginx c usr local nginx conf nginx.conf c引數指定了要載入的nginx配置檔案路徑 停止操作 停止操作是通過向nginx程序傳送訊號來進行的 步驟1 查詢nginx主程序號 ps ef grep nginx在程序列表裡 面找...