管理者は、nginx をインストールすることによって、顧客のウェブサイトをホストするウェブサーバの能力を向上できます。nginx とは、高パフォーマンスな補助的ウェブサーバであり、通常はリバースプロキシサーバとして使用します。このウェブサーバは、大量の静的コンテンツ(画像、動画、CSS、XML など)の配信専用に設計されています。Apache と比べ、nginx は大量の同時接続が発生する状況で非常に効率的です。このほかに、nginx が Apache より優れている点としては、クライアント接続ごとのメモリ消費量が大幅に少なくなります。
nginx の利点をフルに活用するために、Plesk では nginx がインターネットと Apache の間のリバースプロキシサーバとして構成されます。つまり、nginx は、サイト訪問者からのすべての要求を処理するフロントエンドのウェブサーバとなります。要求は Apache に送信され、Apache が静的コンテンツと動的コンテンツを識別します。要求が静的ファイル(jpg、css、html など)であれば、Apache は登録されたすべてのハンドラに要求を渡し(.htaccess
ディレクトリレベルの構成の適用、URL 変更など)、要求されたファイルに関するファイルシステム上の場所のみを含む応答を nginx に返します。続いて nginx がファイルを探し、クライアントに送信します。要求が動的ファイル(PHP スクリプトなど)であれば、Apache はファイルを実行し、応答を nginx に返します。nginx がこれをクライアントに提供します。
このような nginx と Apache の連携には、次のようなメリットがあります。
Plesk での nginx による HTTP 要求の処理方法に関する技術的な詳細は、このセクションで後ほど説明します。Plesk で nginx のサポートを有効にする方法については、「nginx をインストールする」セクションを参照してください。nginx を使用しない場合は、「nginx を無効にする」セクションの説明に従って、Apache をフロントエンドのウェブサーバにしてください。
nginx と Apache をシームレスに統合するために、Plesk では、さらに次の 2 つの Apache モジュールが使用されています。
.htaccess
関連モジュール、mod_php など)の後で実行されるハンドラをセットアップします。したがって、要求先が動的コンテンツであれば、要求は特定の Apache モジュール(mod_php、mod_perl、mod_cgi など)の上位ハンドラによって対応されるため、mod_aclr2 にはこの要求は渡されません。唯一の例外は SSI 要求です。これらの要求が mod_aclr2 に渡されると、mod_aclr2 は適切なハンドラに要求をリダイレクトします。要求先が静的ファイルであれば、mod_aclr2 はファイルシステム上のファイルロケーションを確認し、ロケーションを nginx に送信します。ここでは、Plesk でこれらのモジュールによって静的コンテンツと動的コンテンツに対する要求を処理する方法について詳しく説明します。
静的ファイルに対する HTTP 要求の処理シーケンスは次のようになります(図を参照)。
.htaccess
構成の適用、URL の変更など)。このステップでは、mod_rpaf によって Apache 変数 REMOTE_ADDR にある nginx サーバの IP アドレスが X-Forwarded-For ヘッダにあるクライアントのアドレスに書き換えられます。次の図は、Plesk で 2 KB の GIF ファイルに対する要求を処理する流れを図示しています。
動的コンテンツに対する要求の処理の場合も、ステップ 1〜3 は同じです。続いて、対応する Apache モジュールのハンドラ(mod_php、mod_perl、mod_cgi など)に要求が渡されます。この要求は mod_aclr2 には渡されません(SSI 要求を除く)。ハンドラが応答を生成して nginx に送信し、nginx が応答をクライアントに配信します。次の図は、Plesk で PHP ファイルに対する要求を処理する流れを図示しています。
このセクションの内容: |
Plesk をクリーンインストールすると、nginx がデフォルトで有効になります。旧バージョンからアップグレードした場合は、[ツールと設定]>[アップデートおよびアップグレード]>[コンポーネントを追加]で、アップグレード後いつでも nginx コンポーネントを追加することができます。コンポーネントの追加後に、[ツールと設定]>[サービス管理]でリバースプロキシサーバ(nginx)サービスを実行する必要があります。
インストールされている nginx サーバのバージョンを確認するには、[ツールと設定]>[サーバコンポーネント]の順に選択します。
Apache ウェブサーバ単独の構成に戻すには、[ツールと設定]>[サービス管理]の順に選択して、リバースプロキシサーバ(nginx)サービスを停止します。
nginx をもう一度フロントエンドのウェブサーバにするには、リバースプロキシサーバ(nginx)サービスを起動します。
注:「リバースプロキシサーバ(nginx)」サービスの処理を開始/停止すると、nginx が起動/停止するだけでなく、ウェブサーバの構成(nginx と Apache の組み合わせまたは Apache のみをフロントエンドウェブサーバに使用)が切り替わります。再起動処理は、他のすべてのサービスと同様に動作し、nginx サービスが再起動します。