我有 nginx 1.6.2,設定升級到 websocket 的連線。
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
當沒有開啟 websocket 連線時,「service nginx stop」就會起作用,主進程和工作進程都會正常停止。
killproc $prog -QUIT
但是當我打開了 websocket 時,nginx 無法停止,即使我得到:
Stopping nginx: [ OK ]
我試過 :
Killproc $prog -KILL
但正如預期的那樣,它會在我第一次運行命令時強制殺死 master,如果我重新執行命令,它會強制殺死工人。
您對強制關閉 nginx 有什麼建議?我正在考慮將killproc替換為:
pkill $prog
答案1
http://nginx.org/en/docs/control.html
嘗試使用TERM
orINT
代替KILL
。
KILL
太「快」了,它沒有給nginx的master有機會停止worker。