Websocket への接続をアップグレードするように構成された nginx 1.6.2 があります。
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
Websocket 接続が開かれていない場合、「service nginx stop」が機能し、マスター プロセスとワーカー プロセスの両方が正常に停止されます。
killproc $prog -QUIT
しかし、WebSocket が開いている場合、次のメッセージが表示されても nginx を停止することはできません。
Stopping nginx: [ OK ]
私は試した :
プロセスを殺す $prog -KILL
しかし、予想どおり、コマンドを初めて実行するとマスターが強制終了され、再実行するとワーカーが強制終了されます。
nginx を強制的にシャットダウンするには何をお勧めしますか? killproc を次のように置き換えることを考えています:
pkill $prog
答え1
nginx.org/ja/docs/control.html を参照してください。
.の代わりにTERM
または を使用してください。 これは「速すぎる」ため、nginx のマスターにワーカーを停止する機会を与えません。INT
KILL
KILL