ホームページ  >  記事  >  運用・保守  >  Nginx のモジュラー アーキテクチャの紹介

Nginx のモジュラー アーキテクチャの紹介

(*-*)浩
(*-*)浩オリジナル
2019-11-27 13:12:323017ブラウズ

Nginx のモジュラー アーキテクチャの紹介

#Nginx のモジュラー アーキテクチャ

Nginx の内部構造は、コア部分と一連の部分で構成されています機能モジュールで構成されています。 (推奨学習:

nginx use)

この分割は、各モジュールの機能を比較的シンプルにして開発しやすく、システムの機能拡張にも便利にするためのものです。説明を簡単にするために、以下では Nginx のコア機能部分を指すために Nginx コアを使用します。

Nginx は、Web サーバーの基本機能に加え、Web サービス リバース プロキシ機能、電子メール サービス リバース プロキシ機能を提供します。

Nginx コアは、基礎となる通信プロトコルを実装し、他のモジュールと Nginx プロセスの基本的なランタイム環境を構築し、他のモジュールのコラボレーション基盤を構築します。さらに、プロトコル関連またはアプリケーション関連の機能のほとんどがこれらのモジュールに実装されています。

モジュールの概要

Nginx は、各機能モジュールをチェーンに編成します。リクエストが到着すると、リクエストはこのチェーン上の一部またはすべてのモジュールを順番に通過して処理されます。 。各モジュールは特定の機能を実装します。

たとえば、リクエスト解凍を実装するモジュール、SSI を実装するモジュール、上流サーバーとの通信を実装するモジュール、FastCGI サービスとの通信を実装するモジュールなどです。

2 つの特別なモジュールがあり、Nginx コアとさまざまな機能モジュールの間に配置されます。これら 2 つのモジュールは、http モジュールと mail モジュールです。

これら 2 つのモジュールは、HTTP プロトコルおよび電子メール関連プロトコル (SMTP/POP3/IMAP) に関連するイベントを処理するために、Nginx コアの上に別の抽象化レイヤーを実装し、これらのイベントが正しく処理されることを保証します。他のいくつかの機能モジュールを順次実行します。

現在、HTTP プロトコルは http モジュールに実装されていますが、SPDY プロトコルをサポートするように Nginx を拡張するために、将来的には別のモジュールに取り除かれる可能性があります。

#モジュールの分類

Nginx モジュールは、機能に応じて基本的に次の種類に分類できます。 #event モジュール:

オペレーティング システムに依存しないイベント処理メカニズムのフレームワークを確立し、特定のイベントの処理を提供します。 ngx_events_module、ngx_event_core_module、ngx_epoll_module などが含まれます。 Nginx で使用される特定のイベント処理モジュールは、特定のオペレーティング システムとコンパイル オプションによって異なります。

フェーズ ハンドラー:

このタイプのモジュールは、直接ハンドラー モジュールとも呼ばれます。主に、クライアントのリクエストの処理と、応答するコンテンツの生成を担当します。ngx_http_static_module モジュールなど、クライアントの静的ページ リクエストの処理と、応答コンテンツの出力用に対応するディスク ファイルの準備を担当します。

出力フィルター:

フィルター モジュールとも呼ばれ、主に出力コンテンツの処理を担当し、出力を変更できます。たとえば、すべての出力 HTML ページに定義済みのフットバーを追加したり、出力画像の URL を置き換えたりできます。

upstream:

アップストリーム モジュールはリバース プロキシ機能を実装し、実際のリクエストをバックエンド サーバーに転送し、バックエンド サーバーからの応答を読み取り、それをサーバーに送り返します。クライアント。アップストリーム モジュールは特別なハンドラーですが、応答コンテンツが実際にはそれ自体で生成されず、バックエンド サーバーから読み取られる点が異なります。

ロードバランサー:

ロード バランシング モジュールは、特定のアルゴリズムを実装し、多くのバックエンド サーバーの中から特定のリクエストの転送サーバーとしてサーバーを選択します。

以上がNginx のモジュラー アーキテクチャの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。