仮想ホストの nginx 設定を調整する

デフォルトで、Apache ウェブサーバは nginx と連携します。このメリットとしては、ウェブページの読み込みの高速化とサーバリソースの節約が挙げられます。デフォルトで Apache と nginx がどのように連携するのかについては、「Apache と nginx」を参照してください。

任意のウェブサイトに対して、デフォルトで Apache と nginx が連携する方法に変更を加えることができます。より具体的には、以下の変更が可能です。

  • nginx を Apache のプロキシとして使用するか、ウェブサイトへのすべての HTTP 要求を処理する独立したサーバとして使用するかを指定する。
  • nginx をプロキシサーバとして使用する場合は、各サーバで処理すべきウェブコンテンツ(静的または動的)の種類を指定する。

このような設定により、大量の動的コンテンツ(PHP ファイル)や静的コンテンツを使用する高負荷ウェブアプリケーションのパフォーマンスを最適化することができます。

この作業のための UI オプションは、顧客パネルの[ウェブサイトとドメイン]> <ドメイン名> >[Apache と nginx の設定]ページにあります。

注:nginx 関連の設定は、nginx が有効になっている場合にのみ指定することができます。

以下の図は、nginx と連携している Apache で可能なすべての構成およびその利点と欠点をまとめたものです。nginx を単独で使用する場合、Apache に要求が届くことはありません。

静的コンテンツの処理

以下の表は、nginx の構成に応じて、2 KB の GIF 画像ファイルに対する要求を Plesk がどのように処理するのかを示しています。

 

header

 

[スマート統計ファイル処理]がオンの場合

default

パフォーマンスと信頼性が最適になる構成です。

Apache は要求を受け取り、ファイルの場所のみを返します。nginx がファイルを検索し、提供します。

[スマート統計ファイル処理]がオフの場合

transparent

nginx が要求と応答を変更せずに受け渡すため、nginx 関連の問題をトラブルシューティングするモードを使用できます。

ファイルは、Apache から nginx へ、および nginx からクライアントへ、合計 2 回送信されます。このため、ファイルが大きい場合、パフォーマンスがわずかに低下する場合があります。

 

ファイル拡張子 GIF が[静的ファイルを nginx で直接処理]に含まれている場合

static_by_nginx

このモードでは、静的ファイルの配信パフォーマンスが向上します。

要求は Apache に到達しないため、Apache ハンドラによって処理されません。つまり、リライトルール、.htaccess ディレクティブなどが適用されないということです。

動的コンテンツの処理

以下の表は、nginx の構成に応じて Plesk が PHP ファイルに対する要求をどのように処理するのかを示しています。

 

header

 

[PHP を nginx で処理]がオフの場合

パフォーマンスと信頼性が最適になる構成です。

Apache は要求を受け取ると、ファイルを実行して結果を返します。

サイトのホスティング設定に応じて、Apache では FastCGI、CGI、または Apache モジュールのいずれかのハンドラが使用されます。また、サイトごとに個別に PHP バージョンを選択することもできます。

[PHP を nginx で処理]がオンの場合

php_nginx

nginx 自体が PHP-FPM ハンドラを使用してファイルを実行します。PHP-FPM ハンドラには拡張 FastCGI 機能があるため、ウェブアプリケーション(特に、ユーザの多いアプリケーション)のパフォーマンスが向上する可能性があります。

要求は Apache に到達しないため、Apache ハンドラによって処理されません。従って、一部のウェブアプリケーションが正しく動作しない場合があります。さらに、Apache .htaccess ディレクティブおよびリライトルールも適用されません。

 

重要:[PHP を nginx で処理]オプションをオンにするには、nginx 用に PHP-FPM サポートをインストールする必要があります。PHP-FPM サポートのインストール方法については、「PHP ハンドラ」セクションを参照してください。

nginx 追加ディレクティブをセットアップする

ウェブサイトのカスタム nginx ディレクティブを追加するには、[nginx 追加ディレクティブ]フィールドを使用します。フィールドを編集する際は、nginx.conf と同様の構文を使用します。たとえば、プロキシ経由のすべての要求を gzip で圧縮するには、次の行を追加します。

gzip_proxied any;

顧客が[nginx 追加ディレクティブ]フィールドを表示・編集することはできません。