nginx がリロードされると、マスター プロセスは最初に構文の有効性をチェックし、次に新しい構成を適用しようとします。これが成功すると、新しいワーカー プロセスが開始され、古いワーカー プロセスにメッセージを送信して、正常にシャットダウンするように要求します。
マスター プロセスはいつ古いワーカー プロセスにシャットダウン メッセージを送信しますか。新しいワーカー プロセスの作成と並行して送信されますか、それとも新しいワーカー プロセスが起動した後のみ送信されますか。
nginx のリロードに時間がかかる場合、リロード期間中に新しい接続を処理できるかどうかを知りたいですか?
答え1
これはnginxのドキュメントより:
nginx が設定ファイルを再度読み込むには、マスター プロセスに HUP 信号を送信する必要があります。マスター プロセスは、まず構文の妥当性をチェックし、次に新しい設定を適用しようとします。つまり、ログ ファイルと新しい listen ソケットを開きます。これに失敗すると、変更をロールバックし、古い設定で作業を続けます。これに成功すると、新しいワーカー プロセスを開始し、古いワーカー プロセスにメッセージを送信して、正常にシャットダウンするように要求します。古いワーカー プロセスは listen ソケットを閉じ、古いクライアントへのサービスを継続します。すべてのクライアントへのサービスが終わると、古いワーカー プロセスはシャットダウンされます。
接続を処理するために、古いワーカー プロセスの 1 つが存続しています。新しいワーカーを起動できる場合は、古いワーカーはシャットダウンされます。それ以外の場合は、nginx は古いワーカーを再度起動します。
ドキュメントにはプロセスの詳細な例も記載されています。
お役に立てれば!