【1】啟動
啟動nginx系統方式:
(1)命令
nginx -c /usr/local/nginx/conf/nginx.conf
說明:-c 參數指定運行nginx系統的自定義配置文件。
若加:使用自定義配置文件。實例請參見下文【停止】nginx系統的方式貼圖。
若不加:使用默認的nginx.conf(一般位於/usr/local/conf/nginx.conf,具體以實際情況為准)
如下實例效果:
即nginx系統選擇默認的配置文件
(2)shell腳本
新建start.sh文件,輸入內容:
nginx -p `pwd`/.. -c conf/nginx.conf
需要啟動時,執行./start.sh 即可
【2】停止
關閉nginx系統方式:
(1)命令
當nginx啟動后,可以使用“-s”參數向nginx管理進程(即master進程)發送信號來控制nginx:nginx -s signal
其中,signal可以是以下值:
[1] stop:快速關閉
[2] quit:安全關閉
[3] reload:重載配置文件
[4] reopen:重新打開一個log文件,主要用於日志切割
quit信號,通知nginx等待worker進程處理完當前的請求后退出,此命令只能由啟動nginx的linux賬戶來執行。
reload信號,通知nginx重新載入配置文件nginx.conf。 除了使用reload外,nginx只會在啟動時載入一次配置文件,之后對配置文件的修改不會實時對已經運行的nginx進程生效。
當運行這個命令時,master進程會嘗試讀取配置文件,如果配置文件沒有問題(配置文件有問題怎么驗證呢?請看下文):
master進程會啟動新的worker進程來運行新的配置文件並處理請求,同時會通知老的worker進程不再處理新的請求並在處理完當前任務后退出。
如果配置文件存在問題不能執行,master進程會回退老配置文件繼續工作,不會導致nginx進程整個異常退出。
linux的kill命令也可以達到相同的作用,假設nginx的master進程號(pid)是123456,那么 kill -s QUIT 123456 和 kill -s HUP 123456 這兩條命令和前面quit、reload的作用相同。
關閉nginx命令1:
nginx -s quit
應用實例:
注意:必須使用啟動nginx的用戶執行此命令。
關閉nginx命令2:
kill -s quit PID
應用實例:
如上實例效果。
(2)shell腳本
新建stop.sh文件,輸入內容:
nginx -p `pwd`/.. -c conf/nginx.conf -s quit
需要關閉系統時,執行./stop.sh即可
【3】重載配置
重新加載配置文件
(1)命令
nginx -s reload
應用實例如下:
注意:reload重新加載的配置,仍為啟動nginx系統時運行的配置文件(應用場景:可能會因業務需求調整,對配置文件做修改,估需重新加載之,也稱熱部署)
(2)shell腳本
新建reload.sh文件,輸入內容:
nginx -p `pwd`/.. -c conf/nginx.conf -s reload
需要重新加載配置文件時,執行./reload.sh即可。
【4】驗證配置
為什么要驗證配置呢?
試想一個場景,線上nginx系統正在正常運行。
現因某種原因,需重新加載一下配置文件,但是,在加載之前,你不確定剛編輯完成的配置文件是否正確(例如:語法等等規范性)
只有配置文件語法等等正確,加載后才會被系統重新讀取並利用,否則,系統會回退原配置文件繼續運行!!
因此,在加載配置文件之前,最好先驗證一下配置文件的正確性。這樣可以確保加載更有把握,更穩妥。
驗證配置文件方式
(1)命令
驗證默認配置文件
nginx -t
驗證自定義配置文件
nginx -t -c /home/test/conf/nginx.conf
應用實例如下:
注意:兩個紅色框中的命令等價
(2)shell腳本
新建testconf.sh,輸入內容:
nginx -p `pwd`/.. -c conf/nginx.conf -t
需要驗證配置文件時,執行./testconf.sh即可。
備注:以上所有shell腳本,建議在conf同目錄新建一個bin目錄放置所有控制腳本即可。
Good Good Study, Day Day Up.
順序 選擇 循環 總結