ホームページ >バックエンド開発 >PHPチュートリアル >【読書メモ】nginxアーキテクチャの予備調査1_プロセスモデル

【読書メモ】nginxアーキテクチャの予備調査1_プロセスモデル

WBOY
WBOYオリジナル
2016-07-29 09:04:561178ブラウズ

原文: http://tengine.taobao.org/book/chapter_02.html%20ngx

[读书笔记]初探nginx架构 1_进程模型
nginx が開始されると、プロセス バックグラウンドにはマスター プロセスと複数のワーカー プロセスが含まれます。
(ターミナル nginx コマンドはマスターと対話します)

マスター プロセスは、

  • 外部からシグナルを受信する
  • 各ワーカー プロセスにシグナルを送信する
  • ワーカー プロセスの実行ステータスを監視する
  • など、ワーカー プロセスを管理するために使用されます。
  • ワーカー プロセスが終了すると (異常な状況下では)、新しいワーカー プロセスが自動的に再起動されます

基本的なネットワーク イベントはワーカー プロセスで処理されます。複数のワーカー プロセスはピアツーピアであり、クライアントからのリクエストを平等に競合し、各プロセスは互いに独立しています。リクエストは 1 つのワーカー プロセスでのみ処理でき、ワーカー プロセスは他のプロセスからのリクエストを処理できません。

処理プロセス

  1. マスタープロセスでは、まずリッスンする必要のあるソケット(listenfd)を確立し、複数のワーカープロセスをフォークアウトします
  2. すべてのワーカープロセスはlistenfdになります。新しい接続が到着したときに読み取り可能になります。確実に 1 つのプロセスだけが接続を処理するように、listenfd 読み取りイベントを登録する前に、すべてのワーカー プロセスが accept_mutex を取得します。read イベントで accept を呼び出します。ワーカー プロセスは接続を受け入れると、リクエストの読み取り、解析、処理、データの生成を開始し、それをクライアントに返し、最後に接続を切断します
  3. このプロセス モデルの利点

各ワーカープロセスは独立したプロセスであり、ロックする必要がないため、ロックによるオーバーヘッドが節約されます
  • 独立したプロセスを使用すると、プログラミングや問題の発見にも非常に便利になります。 1 つのプロセスが終了した後も、他の​​プロセスは引き続き動作し、サービスはすぐに新しいワーカー プロセスを開始します
  • ').addClass('pre-numbering' )。隠れる( ); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i
  • ').text(i)); }; $numbering.fadeIn(1700); }); });
以上、[読書メモ] nginx アーキテクチャ 1_プロセス モデルの予備調査を紹介しました。内容の側面も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。