nginx啟動,重啟,關閉命令

YatHo發表於2017-06-22

停止操作
停止操作是通過向nginx程式傳送訊號(什麼是訊號請參閱linux文 章)來進行的
步驟1:查詢nginx主程式號
ps -ef | grep nginx
在程式列表裡 面找master程式,它的編號就是主程式號了。
步驟2:傳送訊號
從容停止Nginx:
kill -QUIT 主程式號
快速停止Nginx:
kill -TERM 主程式號
強制停止Nginx:
pkill -9 nginx

另外, 若在nginx.conf配置了pid檔案存放路徑則該檔案存放的就是Nginx主程式號,如果沒指定則放在nginx的logs目錄下。有了pid文 件,我們就不用先查詢Nginx的主程式號,而直接向Nginx傳送訊號了,命令如下:
kill -訊號型別 '/usr/nginx/logs/nginx.pid'

平滑重啟
如果更改了配置就要重啟Nginx,要先關閉Nginx再開啟?不是的,可以向Nginx 傳送訊號,平滑重啟。
平滑重啟命令:
kill -HUP 住進稱號或程式號檔案路徑

或者使用

/usr/nginx/sbin/nginx -s reload

 

 

注意,修改了配置檔案後最好先檢查一下修改過的配置檔案是否正 確,以免重啟後Nginx出現錯誤影響伺服器穩定執行。判斷Nginx配置是否正確命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf

或者

/usr/nginx/sbin/nginx -t

 


平滑升級
如果伺服器正在執行的Nginx要進行升級、新增或刪除模組時,我們需 要停掉伺服器並做相應修改,這樣伺服器就要在一段時間內停止服務,Nginx可以在不停機的情況下進行各種升級動作而不影響伺服器執行。
步驟1:
如 果升級Nginx程式,先用新程式替換舊程式檔案,編譯安裝的話新程式直接編譯到Nginx安裝目錄中。
步 驟2:執行命令
kill -USR2 舊版程式的主程式號或程式檔名
此時舊的Nginx主程式將會把自己的程式檔案改名為.oldbin,然後執行新版 Nginx。新舊Nginx會同市執行,共同處理請求。
這時要逐步停止舊版 Nginx,輸入命令:
kill -WINCH 舊版主程式號
慢慢舊的工作程式就都會隨著任務執行完畢而退出,新版的Nginx的工作程式會逐漸取代舊版 工作程式。

此 時,我們可以決定使用新版還是恢復到舊版。
不過載配置啟動新/舊工作程式
kill -HUP 舊/新版主程式號
從容關閉舊/新程式
kill -QUIT 舊/新主程式號
如果此時報錯,提示還有程式沒有結束就用下面命令先關閉舊/新工作程式,再關閉主程式號:
kill -TERM 舊/新工作程式號

這樣下來,如果要恢復到舊版本,只需要上面的幾個步 驟都是操作新版主程式號,如果要用新版本就上面的幾個步驟都操作舊版主程式號就行了。

上面就是Nginx的一些基本的操作,希望以後Nginx能有更好的方法來處理這些操作, 最好是Nginx的命令而不是向Nginx程式傳送系統訊號。

相關文章