2. Nginx の動作モードと高同時実行性の処理方法についての理解
Nginx の動作モードは非常にシンプルです。つまり、マスター プロセスと複数のワーカー プロセスを使用します。非常に明確です。ワーカー プロセスを管理し、同時に接続リクエストを監視します。接続リクエストが到着すると、接続はワーカー プロセスに組み込まれ、http リクエストなどの特定のビジネス リクエストを処理します。 Nginx が高い同時実行性を処理できる理由は、ソケット管理メソッドが非同期で非ブロッキングであるためです。各ワーカー プロセスには、多数のソケット記述子の管理に 1 つのメイン スレッドがあり、他のスレッドはありません。スレッドの利点は、スレッド間で切り替える必要がないため、リソースが節約されることです。要約すると、Nginx が低効率で実行しながら高い同時実行性をサポートできる鍵は、システム全体内に限られた数の作業プロセスと 1 つのリスニング プロセスのみが存在し、各プロセス内にメイン スレッドが 1 つだけ存在することです。大量のスレッド切り替えが発生するため、システムのオーバーヘッドが削減されます。同時に、各スレッドは非同期の非ブロッキング メソッドを使用して記述子を管理できるようになります。記述子が多い場合は、より多くのメモリを占有するだけで、メモリを使用するだけであり、多くの CPU 時間を消費しません。上記は、Nginx のプロセス モデルとイベント モデルです。イベント モデルでは、HTTP リクエストなどのネットワーク イベントが処理されます。ネットワーク イベントは、非同期ノンブロッキング モードとシグナルを使用して適切に解決できます。タイマー、信号、タイマーはまだあまり明確ではありません。 Nginx がプロセス間のシステム リソースの競合、つまりプロセス間に存在する激しい群れ現象を処理する方法。
上記では、動作モードと Nginx のいくつかの理解を、その側面も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。