前言
- nginx啓動時,會啓動兩個進程: 一個是Master進程和worker進程。
改變配置後nginx做的事
- 1)改變了nginx配置之後,HUP signal的信號需要發送給主進程。
- 2)主進程首先會檢測新配置的語法有效性。
- 3)嘗試應用新的配置
- 1.打開日誌文件,並且新分配一個socket來監聽。
- 2.如果1失敗,則回滾改變,還是會使用原有的配置。
- 3.如果1成功,則使用新的配置,新建一個線程。新建成功後發送一個關閉消息給舊的進程。要求舊線程優雅的關閉。
- 4.舊的線程 受到信號後會繼續服務,當所有請求的客戶端被服務後,舊線程關閉。
圖解
- 修改配置後使用如下命令生效配置
nginx -s reload
查看進程情況
從如下進程情況的改變可以知道
- 此時進程1360是 nginx的主進程
修改前
- 修改後