nginx のリロード中に新しい接続に何が起こるか

nginx のリロード中に新しい接続に何が起こるか

nginx がリロードされると、マスター プロセスは最初に構文の有効性をチェックし、次に新しい構成を適用しようとします。これが成功すると、新しいワーカー プロセスが開始され、古いワーカー プロセスにメッセージを送信して、正常にシャットダウンするように要求します。

マスター プロセスはいつ古いワーカー プロセスにシャットダウン メッセージを送信しますか。新しいワーカー プロセスの作成と並行して送信されますか、それとも新しいワーカー プロセスが起動した後のみ送信されますか。

nginx のリロードに時間がかかる場合、リロード期間中に新しい接続を処理できるかどうかを知りたいですか?

答え1

これはnginxのドキュメントより:

nginx が設定ファイルを再度読み込むには、マスター プロセスに HUP 信号を送信する必要があります。マスター プロセスは、まず構文の妥当性をチェックし、次に新しい設定を適用しようとします。つまり、ログ ファイルと新しい listen ソケットを開きます。これに失敗すると、変更をロールバックし、古い設定で作業を続けます。これに成功すると、新しいワーカー プロセスを開始し、古いワーカー プロセスにメッセージを送信して、正常にシャットダウンするように要求します。古いワーカー プロセスは listen ソケットを閉じ、古いクライアントへのサービスを継続します。すべてのクライアントへのサービスが終わると、古いワーカー プロセスはシャットダウンされます。

接続を処理するために、古いワーカー プロセスの 1 つが存続しています。新しいワーカーを起動できる場合は、古いワーカーはシャットダウンされます。それ以外の場合は、nginx は古いワーカーを再度起動します。

ドキュメントにはプロセスの詳細な例も記載されています。

お役に立てれば!

関連情報