nginx -s reload原理


我們執行這條命令的原因是希望 nginx 不停止服務始終在處理新的請求的同時把 nginx 的配置文件平滑的把舊的 nginx.conf 配置更新為新的 nginx.conf 配置。
這樣一個功能對於 nginx 非常有必要,但是有時候我們會發現在執行 nginx -s reload 命令后,worker 子進程的數量會變多了,這是因為老的配置運行的 worker 進程長時間沒有退出,當使用 stream 做四層反向代理的時候,可能這種場景會更多。

nginx reload流程 (1)向 master 進程發送 HUP 信號(reload命令) (2)master 進程校驗配置文件語法是否正確 (3)master 進程打開新的監聽端口 (4)master 進程用新配置啟動新的 worker 子進程 (5)master 進程向老 worker 子進程發送 QUIT 信號 (6)老 worker 進程關閉監聽句柄,處理完當前連接后結束進程

reload nginx可以兩種方式:

(1)./nginx -s reload
(2)kill -HUP masterpid 即 kill -HUP `cat /opt/ngx/logs/nginx.pid`


免責聲明!

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



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