nginx 學習筆記(3) nginx管理


nginx可以通過向其發送信號來進行管理。默認情況下主進程的進程ID寫到文件/usr/local/nginx/logs/nginx.pid中。當然也可以在配置文件中自定義該pid文件,自定義使用pid指令來進行修改。主進程支持如下信號:

 

TERM, INT fast shutdown
QUIT graceful shutdown
HUP changing configuration, keeping up with a changed time zone (only for FreeBSD and Linux), starting new worker processes with a new configuration, graceful shutdown of old worker processes
USR1 re-opening log files
USR2 upgrading an executable file
WINCH graceful shutdown of worker processes

 

盡管不是必須,單個的工作進程同樣可以通過下列信號進行控制。工作進程支持如下信號:

 

TERM, INT fast shutdown
QUIT graceful shutdown
USR1 re-opening log files
WINCH abnormal termination for debugging (requires debug_points to be enabled)

 

                              改變配置文件

為使nginx重新讀取配置文件,可以想主進程發送一個HUB信號。主進程首先檢測語法的有效性,然后嘗試應用到新的配置中即打開日志文件和新的監聽套接字:若失敗,主進程回滾到改變前的配置,並繼續使用舊的配置運行。若成功則開啟新的工作進程,給舊的工作進程發送完整性關閉命令,舊的工作進程關閉監聽套接字,繼續處理舊的請求並返回給客戶端,當所有的客戶端請求處理完后,舊的工作進程關閉。

   舉個例子,假定nginx運行在FreeBSD 4.X之上,命令如下:

 

ps axw -o pid,ppid,user,%cpu,vsz,wchan,command | egrep '(nginx|PID)'

 

打印出如下內容:

 

  PID  PPID USER    %CPU   VSZ WCHAN  COMMAND
33126     1 root     0.0  1148 pause  nginx: master process /usr/local/nginx/sbin/nginx
33127 33126 nobody   0.0  1380 kqread nginx: worker process (nginx)
33128 33126 nobody   0.0  1364 kqread nginx: worker process (nginx)
33129 33126 nobody   0.0  1364 kqread nginx: worker process (nginx)

 

向主進程發送HUP信號后,打印出如下內容:

 

  PID  PPID USER    %CPU   VSZ WCHAN  COMMAND
33126     1 root     0.0  1164 pause  nginx: master process /usr/local/nginx/sbin/nginx
33129 33126 nobody   0.0  1380 kqread nginx: worker process is shutting down (nginx)
33134 33126 nobody   0.0  1368 kqread nginx: worker process (nginx)
33135 33126 nobody   0.0  1368 kqread nginx: worker process (nginx)
33136 33126 nobody   0.0  1368 kqread nginx: worker process (nginx)

 

可以看到PID為33129的舊工作進程正在處理請求中。過一段時間后再觀察,發現它已經關閉掉了:

 

 PID  PPID USER    %CPU   VSZ WCHAN  COMMAND
33126     1 root     0.0  1164 pause  nginx: master process /usr/local/nginx/sbin/nginx
33134 33126 nobody   0.0  1368 kqread nginx: worker process (nginx)
33135 33126 nobody   0.0  1368 kqread nginx: worker process (nginx)
33136 33126 nobody   0.0  1368 kqread nginx: worker process (nginx)

 

 ---出去一段時間

 

 

 

 

 

 

 

 

 


免責聲明!

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



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