Nginx的啓動、停止、平滑啓動、平滑升級

Nginx的啓動

啓動nginx,可以執行一下命令(默認安裝位置):
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
參數“-c”指定了配置文件的路徑,如果不加,則Nginx會默認加載其安裝目錄的conf子目錄中的ngin.conf

Nginx的停止

nginx的停止方法有很多種,一般是發送系統信號給nginx主進程來停止nginx。
我們通過ps命令來查找nginx的主進程號

ps -ef |grep nginx

我們可以看到備註信息爲“master process”它表示主進程。爲“worker”的是子進程。

如果在nginx.conf中指定了pid文件存放路徑,則該文件存放的就是nginx的主進程號。如果沒有指定,則默認存放在Nginx安裝目錄的log目錄下。所以我們還可以這樣做:

kill -信號類型 '/usr/local/nginx/logs/nginx.pid'

nginx支持以下幾種信號:
TERM,INT :快速關閉
QUIT:從容關閉
HUP:平滑啓動
USR1:重新打開日誌文件
USR2:平滑升級可執行程序
EINCH:從容關閉工作進程
(1)從容停止nginx

    kill -QUIT Nginx 主進程號

(2)快速停止Nginx

kill -TERM Nginx主進程號

(3)強制停止所有nginx進程

pkill -9 nginx

Nginx的平滑啓動

kill -HUP nginx主進程號

nginx平滑升級

當需要將正在運行的nginx升級、添加/刪除服務器模塊時,可以在不中斷的情況下使用新版本、重編譯的nginx可執行程序替換舊版本的可執行程序。步驟如下:
(1)備份舊的可執行程序
(2)發送以下指令

kill -USR2 舊的版本nginx主進程號

(3)舊版本的nginx的主進程將重命名他的pid文件爲.oldbin。然後執行新版本的nginx可執行程序。依次啓動新的主進程和新的工作進程。
(4)此時新舊版本的nginx會同時運行,共同處理輸入請求。要逐步停止舊版本的nginx實例,需要發送WINCH信號給舊的主進程,然後他的工作進程就從容關閉:

kill -WINCH 舊版本的主進程號

(5)一段時間後,舊的工作進程處理完所有的已連接請求後退出,僅有新的工作進程來處理輸入請求。
(6)這時候我們可以決定是使用新的版本還是恢復到舊版本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章