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)這時候我們可以決定是使用新的版本還是恢復到舊版本。