nginx的啟動、停止、重載配置、驗證配置


【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.

順序 選擇 循環 總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM