nginxの再読み込みはダウンロードを大幅に中断します。

nginxの再読み込みはダウンロードを大幅に中断します。

私はnginx 1.9.3を実行しています。大容量ファイル(この場合は1GiB)をダウンロードして「nginx -s reload」を使用してnginxを再読み込みすると、Opera、Google Chrome、Firefoxを含むがこれらに限定されないさまざまなブラウザでダウンロードが中断されます。

カールと標準フラグ(追加のヘッダーなしでファイルURLのみを使用)を使用すると、ダウンロードが正常に機能し、中断されません。

server {
    listen 443 ssl spdy;
    include tls.conf;
    server_name example.com;

    root /var/www/dl;

    access_log logs/dl.access.log;
    error_log logs/dl.error.log;

    error_page 403 https://example.com;
}

私が理解しているように、nginxプロセスは自己終了する前にすべての要求が完了するのを待たなければならないので、なぜこれが起こるのか完全にはわかりません。誰もが私の脳に関する追加の知識を提供したり、nginx文書の関連ガイドラインを教えてくれたら、この問題を喜んで解決します。 :-)

ベストアンサー1

読むこのnginxドキュメント。あなたは実行する必要があります通常の再起動変えるリフレッシュ。単純リロードでは、ワーカープロセスは正常に再起動されません。

段階的に再起動すると、次の手順が実行されます。

kill -USR2 $(cat /var/run/nginx.pid)
kill -WINCH $(cat /var/run/nginx.pid.oldbin)
kill -QUIT $(cat /var/run/nginx.pid.oldbin)

編集:まあ、ドキュメントは実際には次のように表示されます。

偶然 変更されたタイムゾーンに合わせて設定を変更し(FreeBSDおよびLinuxのみ)、新しい設定で新しいワーカープロセスを開始します。以前のワーカープロセスを正常に終了します。

それでkill -HUP $(cat /var/run/nginx.pid)十分です。nginx -s reload同じことをしているようです。問題の原因は異なります。

おすすめ記事