原文: http://tengine.taobao.org/book/chapter_02.html%20ngx
nginx が開始されると、プロセス バックグラウンドにはマスター プロセスと複数のワーカー プロセスが含まれます。
(ターミナル nginx コマンドはマスターと対話します)
マスター プロセスは、
- 外部からシグナルを受信する
- 各ワーカー プロセスにシグナルを送信する
- ワーカー プロセスの実行ステータスを監視する
など、ワーカー プロセスを管理するために使用されます。 - ワーカー プロセスが終了すると (異常な状況下では)、新しいワーカー プロセスが自動的に再起動されます
基本的なネットワーク イベントはワーカー プロセスで処理されます。複数のワーカー プロセスはピアツーピアであり、クライアントからのリクエストを平等に競合し、各プロセスは互いに独立しています。リクエストは 1 つのワーカー プロセスでのみ処理でき、ワーカー プロセスは他のプロセスからのリクエストを処理できません。
処理プロセス
- マスタープロセスでは、まずリッスンする必要のあるソケット(listenfd)を確立し、複数のワーカープロセスをフォークアウトします
- すべてのワーカープロセスはlistenfdになります。新しい接続が到着したときに読み取り可能になります。確実に 1 つのプロセスだけが接続を処理するように、listenfd 読み取りイベントを登録する前に、すべてのワーカー プロセスが accept_mutex を取得します。read イベントで accept を呼び出します。ワーカー プロセスは接続を受け入れると、リクエストの読み取り、解析、処理、データの生成を開始し、それをクライアントに返し、最後に接続を切断します
- このプロセス モデルの利点
各ワーカープロセスは独立したプロセスであり、ロックする必要がないため、ロックによるオーバーヘッドが節約されます
- 独立したプロセスを使用すると、プログラミングや問題の発見にも非常に便利になります。 1 つのプロセスが終了した後も、他のプロセスは引き続き動作し、サービスはすぐに新しいワーカー プロセスを開始します
- ').addClass('pre-numbering' )。隠れる( );
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i
- ').text(i));
};
$numbering.fadeIn(1700);
});
});
以上、[読書メモ] nginx アーキテクチャ 1_プロセス モデルの予備調査を紹介しました。内容の側面も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。