Nginx は Websocket 接続で停止しません

Nginx は Websocket 接続で停止しません

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 のマスターにワーカーを停止する機会を与えません。INTKILLKILL

関連情報