nginxの要求処理の流れ、あなたは知っていますか?

我々は以前、我々はnginxのの基本的なアーキテクチャを導入し始め、nginxのの基本を説明しました。

なぜ我々は、nginxののアーキテクチャ基盤を議論する必要がありますか?

nginxのは、エッジノードである場合、フローは、彼がトラフィックを処理するために、他のアプリケーションサーバーを扱うこと数回あり、かつ大きさであっても数桁企業ネットワークの最も外側の層内で実行されるので、我々は大きさの異なる順序で問題のいずれかの種類を知って、彼それは我々がnginxのは、このようなマスターワーカーのアーキテクチャモデルを使用して理由を理解するために行かなければならないので、nginxのは、すべての問題は、なぜワーカープロセス、拡大表示されますアプリケーションシナリオを扱うので、解決策は、完全に異なっていますCPUのコアの量と数と一致するには?我々は複数のワーカープロセス間でデータを共有する必要があるときに、なぜTLSまたは制限、速度制限などAシナリオは、彼らのシェアは道多少異なっている場合、これらの必要性私たちは、nginxのためのフレームワークを持っています明確な理解。

私たちにnginxの要求処理フローの最初のを見てみましょう。

なぜそれに要求の処理の流れnginxのに行きますか?私たちはnginxのは、静的なリソースを扱うことができ、アクセスログやエラーログを記録することを学んだ前に、実際には、あなたはまた、リバースプロキシを行うことができますので、その後、これらの事は、我々は内部nginxのからのこれらの要求に対処するために正確にどのように彼を見、それそれはそれのどの部分の一部が含まれていますか?

要求の処理は、nginxの流れ

要求の処理は、nginxの流れ

私たちはここにnginxの後からの3つのトラフィックは基本的に存在していると言うことです、この絵は、ほとんどのWeb、電子メールおよびTCPの左からほとんどを残し、我々nginxのは、3台の大きなステートマシンは、TCP / UDPの処理でありトランスポート層状態機械とプロセスアプリケーション層と層4 HTTPステータスMAILステートマシンは、メールを処理します。

では、なぜ我々はそれステートマシン呼ぶのですか?この大規模な緑の箱のコアは、彼が非ブロックイベント処理エンジンを運転していたので、我々はそれが我々がこの非同期処理エンジンを使用すると、通常の要求にステートマシンを使用する必要が後でそれから、ファイルディスクリプタを使用することです知っているようnginxのです正しい識別と取り扱い。

私たちは、静的なリソースへの要求のアクセスに必要な状態のイベントハンドラに基づいて解析し、我々は矢印の左下を見に行く、それは静的なリソースを発見し、我々はときにリバースプロキシを行う場合メモリ全体が完全にするのに十分でない場合では、リバースプロキシコンテンツは、私はだけでなく、下の行の左側下に、ディスクキャッシュ、ディスクへのキャッシュを行うことができますが、我々は静的リソースを扱う際に、問題があるでしょう送信ファイルは、ブロッキングディスク・コールに縮退のように、すべてのドキュメントと時間の情報をキャッシュし、そのようなコールやAIOはので、ここで私たちは、それぞれに処理要求それのために、ハンドルにスレッドプールを持っている必要があり、だろう、我々は意志アクセスログやエラーログを入力してください。

そこでここでは、もちろん、私たちが使用し、より頻繁に私達のnginxのロードバランサまたはリバースプロキシとして、リモートのsyslogプロトコルによってマシンにそれを置くことができ、ディスクの中にある私たちがして要求を置くことができるということですレベルのプロトコル(HTTP、メールストリーム(TCP))は、対応するアプリケーション層プロキシ・アプリケーション・サーバーに、また、例えば、いくつかのプロトコル(FastCGIの、uWSGI、SCGIは、memcachedの)可能なサーバの背面に送信されます。これらは、nginxの要求処理の流れです。

おすすめ

転載: www.cnblogs.com/wupeixuan/p/11832016.html