nginx -s reload 與 service nginx restart 的區別


官方文檔:https://nginx.org/en/docs/beginners_guide.html

1. 語法
nginx -s signal

signal 的值如下:
stop:fast shutdown,快速的停止 nginx
quit:graceful shutdown,不再接受新的請求,等正在處理的請求出完成后在進行停止(優雅的關閉)
reload:reloading the configuration file,重新加載配置文件
reopen:reopening the log files,重新寫入日志文件

2. 兩者區別
nginx -s reload (熱重載):Nginx 服務不會終止,使用主進程檢查配置,如果配置文件語法正確,則主進程會啟動一個新的工作進程處理新來的請求。主進程發送消息給原來的工作進程,通知舊的進程不在接受請求,處理完現有的請求后退出(優雅退出);如果語法不正確,則繼續使用舊的進程繼續處理請求。

service nginx restart(重啟):該條命令的執行過程如下,nginx -s stop -> nginx 先將 Nginx 快速的停止(等同於 service nginx stop),然后在執行啟動命令(等同於 service nginx start),啟動的時候會造成短暫的服務中斷;如果配置文件語法錯誤,那問題就大了,有可能會造成更長時間的中斷,有可能會造成很大的宕機。

3. 注意事項
如果是正式環境需要修改配置文件時,先把原有的配置文件備份一下,然后在進行修改;修改完成后先通過 nginx -t 檢查一下配置文件是否有錯誤,如果沒有的話再進行 nginx -s reload 熱加載.

如果要求停止 Nginx 或者是 釋放 Nginx 資源時,我們才使用 service nginx stop 或 service nginx restart 命令,否則一般都是用 nginx -s reload。


免責聲明!

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



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