Apache and Nginx Settings

By default, Plesk uses the Apache web server (http://en.wikipedia.org/wiki/Apache_HTTP_Server) to deliver the pages of your website to clients (such as browsers, through which visitors access your website). To achieve better performance, Apache is supplemented with another web server - nginx. You also have the option to use nginx only.

Default web server settings are specified by the server administrator (hosting provider). These settings determine how web servers process various types of files, how they use SSL/TLS, where they store log files, and so on.

However, you (as a website owner) can set up custom web server settings for your website. For example, add a type of the index file, restrict access to the site, and so on.

Note: You can adjust web server settings for your websites if your hosting subscription provides the corresponding permission.

このセクションの内容:

Apache と Nginx の設定を調整する

MIME タイプを構成する

Apache ハンドラを構成する

ウェブサイトへのアクセスを禁止する

インデックスファイルを構成する

「Expires」ヘッダを構成する

追加のヘッダを構成する

シンボリックリンクのフォローを制限する

nginx のみのホスティング

静的ファイル処理を構成する

nginx キャッシュを有効にする

サーバ設定のデフォルト値

 
Apache と Nginx の設定を調整する

Apache と nginx には、ドメインレベルでカスタマイズできる特定の設定があります。これらの設定は、[ウェブサイトとドメイン]> ドメイン名 >[Apache と nginx の設定]にあり、以下の 2 グループに分類されます。

  • Apache 共通設定
  • nginx 設定

    apache

 
MIME タイプを構成する

MIME タイプは、ファイルの拡張子とファイルタイプを紐付け、ウェブブラウザに対して特定のファイルタイプをどのように処理すべきか指示します。たとえば、以下の MIME タイプを見てみましょう。

text/plain .txt

このタイプは、ウェブブラウザに対し、すべての .txt ファイルをプレーンテキストとして処理するように指示しています。一般的な MIME タイプはデフォルトであらかじめ構成されています。ただし、標準的ではない拡張子をファイルに使用していることが原因でウェブサイトのページがウェブブラウザで正しく処理されない場合、カスタム MIME タイプを 1 つまたは複数構成する必要があります。

カスタム MIME タイプを構成する:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進みます。
  2. [MIME タイプ]の下で、[カスタム値を入力]ラジオボタンをオンにします。
  3. 必要な MIME タイプを入力または削除して[OK]をクリックします。
 
Apache ハンドラを構成する

Apache ハンドラは、特定の拡張子のファイルをどのように処理すべきかウェブサーバに指示します。たとえば、以下のハンドラを見てみましょう。

cgi-script .cgi

このハンドラは、すべての .cgi ファイルを cgi スクリプトとして処理するようにウェブサーバに指示しています。デフォルトで、一般的な拡張子のファイル用のハンドラはあらかじめ構成されています。ただし、特定の拡張子のファイルの処理に使用するハンドラを変更したい場合、カスタムハンドラを 1 つまたは複数構成する必要があります。

カスタムハンドラを構成するには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進みます。
  2. [ハンドラ]の下で、[カスタム値を入力]ラジオボタンをオンにします。
  3. 必要なハンドラを入力または削除して[OK]をクリックします。
 
ウェブサイトへのアクセスを禁止する

特定の訪問者による御社ウェブサイトへのアクセスを禁止することができます。以下に対するアクセスを禁止できます。

  • 個別 IP アドレス(たとえば 192.168.1.110
  • IP アドレスのサブネット(たとえば 127.0.0.1/8
  • 特定のホスト名(たとえば example.com
  • すべての人(アスタリスク記号 * を使用)

ブロックされた訪問者がウェブサイトを閲覧しようとすると「403 Forbidden」エラーメッセージが表示されます。

ウェブサイトへのアクセスを構成するには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進みます。
  2. [ウェブサイトへのアクセスを禁止]の下で、[カスタム値を入力]ラジオボタンをオンにします。
  3. 必要な IP アドレス、サブネット、ホスト名を入力または削除します。
  4. サブネットをブロックし、そのサブネットに属する 1 つまたは複数の IP アドレスは許可したい場合、[除外]フィールドに IP アドレスを入力します。
  5. [OK]をクリックします。

 
インデックスファイルを構成する

ウェブサイトへの訪問者が特定のファイルではなくディレクトリ(たとえば www.example.com/index.html ではなく www.example.com または www.example.com/example)をリクエストして URL を参照すると、Apache は表示するインデックスファイルを探します。デフォルトで、Apache は以下のファイルを(指定した順序で)探します:

  1. index.html
  2. index.cgi
  3. index.pl
  4. index.php
  5. index.xhtml
  6. index.htm
  7. index.shtml

7 ファイルすべてがディレクトリにある場合、閲覧する訪問者には index.html ファイルが表示されます。index.html がない場合、Apache は代わりに index.cgi ファイルを探し、これがなければ次のものを探します。適当なインデックスファイルが見つからない場合、デフォルトで「403 Forbidden」エラーが表示されます。

Plesk では、御社のウェブサイトのディレクトリを訪問者が閲覧するときに Apache が探すインデックスファイルをカスタマイズできます。

  • Apache がインデックスファイルを探す順序は変更可能です(たとえば、デフォルトで index.html ファイルではなく index.php を表示させることができます)。
  • インデックスファイル名をリストに追加したり、削除することができます(たとえば、ウェブサイトのデフォルトページの名前が hello.php の場合、Apache にこれをデフォルトで表示させることができます)。

インデックスファイルを構成するには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進みます。
  2. [インデックスファイル]の下で、[カスタム値を入力]ラジオボタンをオンにします。
  3. 必要なインデックスファイル名を、Apache が探すべき順序で入力または削除し、[OK]をクリックします。

 
「Expires」ヘッダを構成する

Apache の expires ヘッダは、ウェブブラウザがウェブコンテンツのコピーをキャッシュしてから、次にサーバにリクエストするまでどれくらいの時間保持するのかを制御します。このヘッダを構成すると、サーバの負荷が軽減され、ウェブサイトがスピードアップする可能性があります。

たとえば、有効期間を 10 日間に設定するとします。ある訪問者が御社のウェブサイトを閲覧し、index.html ページをリクエストします。訪問者のウェブブラウザは、ページのコピーをキャッシュに保存し、その後 10 日間は訪問者がウェブサイトを閲覧するたびに、キャッシュされたコピーを表示します。11 日目に、ページが再びリクエストされると、ブラウザはサーバにこのページを再びリクエストします。キャッシュに保存されたページは期限が切れているためです。

動的コンテンツを使用するウェブサイトの expires ヘッダを構成する場合、[response with Expires headers for static files only(静的ファイルに対してのみ Expires ヘッダで応答)] オプションを有効にすることをお勧めします。これを設定しなければ、期限が切れるまでの期間、動的コンテンツを含む全コンテンツが訪問者のブラウザのキャッシュに保存されます。これはお勧めしません。動的コンテンツは原則として頻繁に更新されます。

「Expires」ヘッダを構成するには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進みます。
  2. [Expires]の下で、[カスタム値を入力]ラジオボタンをオンにします。
  3. 必要な有効期間を指定します(推奨される有効期間は 14 日間)。
  4. ウェブサイトで動的コンテンツを使用している場合、[response with Expires headers for static files only(静的ファイルに対してのみ Expires ヘッダ付きで応答)]チェックボックスがオンになっていることを確認します。
  5. [OK]をクリックします。

注:nginx が有効な場合、expires ヘッダがあるのは Apache によって提供されるファイルのみです。[スマート統計ファイル処理]チェックボックスがオンの場合、静的ファイルとして処理されるファイルは Apache および nginx のデフォルト構成で決まります。[静的ファイルを nginx で直接処理]チェックボックスがオンになっており、何らかのファイル拡張子が指定されている場合、nginx は指定された拡張子のファイルのみを提供します。

 
追加のヘッダを構成する

以下のパターンに従って、HTTP 応答に追加のヘッダを構成できます。

名前:値

HTTP 応答ヘッダにはリクエストされたページについての情報が含まれ、ウェブブラウザに各種アクションの実行を指示します。たとえば、以下のヘッダはウェブサイトへの訪問者をクリックジャッキングから守ります。

X-Frame-Options: DENY

追加のヘッダを構成するには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進みます。
  2. [追加のヘッダ]の下で、[カスタム値を入力]ラジオボタンをオンにします。
  3. 必要なヘッダを入力または削除して[OK]をクリックします。

 
シンボリックリンクのフォローを制限する

デフォルトで、Apache はシンボリックリンクをフォローできます。ウェブサイトでシンボリックリンクを使用しない場合、このオプションには軽微なセキュリティ上のリスクがあるため、無効にすることをお勧めします。

Apache によるシンボリックリンクのフォローを禁止するには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進みます。
  2. [シンボリックリンクのフォローを制限する]チェックボックスをオンにして[OK]をクリックします。

 
nginx のみのホスティング

Plesk for Linux では、nginx と PHP-FPM を組み合わせてウェブサイトをホストできます。この場合、ウェブサイトへの要求は Apache に渡されず、nginx によって処理されます。nginx のみのホスティングは PHP ウェブサイトで特に有効なオプションですが、静的ウェブサイトやアプリケーションサーバのホスティングにも適しています。Apache を停止または無効にすることなく nginx で処理するように個別のウェブサイトを構成することができ、Apache を使用してホストされるウェブサイトにはいかなる影響も与えません。

注:Plesk サービス(ウェブメールなど)は引き続き Apache を使用して機能し、nginx のみのホスティングに切り替えたことによる影響を受けません。

ドメインに対して nginx のみのホスティングをオン/オフにするには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進みます。
  2. [nginx 設定]セクションで、[プロキシモード]チェックボックスをオフにします。
  3. [適用]をクリックします。

ドメインを Apache+nginx ホスティングに戻すには、[プロキシモード]チェックボックスをオンにします。

既知の制約事項

ドメインを nginx のみのホスティングに切り替えると、以下の制約が課されます。

  • ファイル共有が使用できなくなる。
  • SSI、Perl、Python のサポートが使用できなくなる。
  • PHP ハンドラ「FPM アプリケーション + nginx」しか使用できなくなる。

 
静的ファイル処理を構成する

デフォルトで、Plesk for Linux サーバ では nginx、Apache は連携して機能します。Apache が動的コンテンツに対応し、nginx は静的コンテンツを提供するプロキシとして使用されます。この方法により、サーバのリソース使用状況が最適化され、Plesk はホストされているウェブサイトへのリクエストにより迅速に対応できるようになります。ただし、Plesk では御社ウェブサイトの静的コンテンツをどのように処理するかを選択することができます。

すべての静的コンテンツを nginx 経由で提供する

これは Plesk for Linux のデフォルトの動作です。静的コンテンツへのリクエストを受信すると、Apache は該当するファイルの場所を示すだけで、nginx がそれを探して提供します。

すべての静的コンテンツを nginx 経由で提供するには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進み、「nginx 設定」のセクションまでスクロールします。
  2. [プロキシモード][スマート統計ファイル処理]チェックボックスをオンにします。
  3. [静的ファイルを nginx で直接処理]チェックボックスがオンになっていないことを確認します。
  4. [OK]をクリックします。
特定の拡張子を持つファイルのみ nginx 経由で提供する

希望する場合、特定の拡張子を持つファイルのみを静的コンテンツとして nginx で提供することができます。通常なら静的ファイルとして分類される他のファイルは、Apache から提供します。このシナリオでは、特定の拡張子を持つファイルへのリクエストが Apache に到達することはありません。その結果、Apache ハンドラを通過しません。つまり、リライトルールや .htaccess ディレクティブは適用されません。

特定の静的コンテンツのみを nginx 経由で提供するには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進み、「nginx 設定」のセクションまでスクロールします。
  2. [プロキシモード][静的ファイルを nginx で直接処理]チェックボックスをオンにします。
  3. デフォルトで、特定のファイル拡張子は既に[静的ファイルを nginx で直接処理]ボックスで構成されています。必要に応じて拡張を追加または削除できます。ファイル拡張子を区切るには、スペースまたは「|」記号を使用します。
  4. [OK]をクリックします。

注:[静的ファイルを nginx で直接処理]オプションを有効にすると、[スマート統計ファイル処理]チェックボックスがオンのままでも、このデフォルトモードが自動的に無効になります。

すべての静的コンテンツと動的コンテンツを Apache 経由で提供する

希望する場合、nginx を無効にして、Apache が静的および動的のすべてのコンテンツを提供するように構成できます。これは、nginx のトラブルシューティングといった特定の状況で役に立ちます。本番ウェブサイトでは、Apache ですべてのコンテンツを処理するのはお勧めしません。

すべての静的コンテンツと動的コンテンツを Apache 経由で提供するには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進み、「nginx 設定」のセクションまでスクロールします。
  2. [プロキシモード]チェックボックスをオンにします。
  3. [スマート統計ファイル処理][静的ファイルを nginx で直接処理]チェックボックスをクリアします。
  4. [OK]をクリックします。

 
nginx キャッシュを有効にする

nginx キャッシュを有効にすると、nginx プロキシサーバが特定のウェブサイトの動的コンテンツをキャッシュできるようになります。キャッシュされたデータは短時間保存されます(通常は数秒以内)。これにより、ウェブサイトのロードが高速化し、サーバ負荷が軽減されます。

nginx キャッシュを有効にするのは、特定の特徴を持つウェブサイト(たとえば、人気ブログやニュースサイト)に対してのみお勧めします。

  • トラフィックが多い
  • コンテンツの更新間隔が数秒程度

以下の特長を持つウェブサイトで nginx キャッシュを有効にするのは、無意味であるか、害がある場合もあります。

  • トラフィックが中程度または少ない
  • コンテンツの更新間隔が数秒より長い
  • パーソナライズされたコンテンツが使用されている(たとえば、訪問者の地理的所在地やショッピングカートの内容)

nginx キャッシュを有効にするには:

  1. [ウェブサイトとドメイン]>[Apache と nginx の設定]に進みます。
  2. [nginx 設定]セクションで、[nginx キャッシュを有効にする]チェックボックスをオンにします。
  3. (オプション)nginx キャッシュ設定をカスタマイズできます。nginx キャッシュについて詳しくない場合、デフォルト設定のまま使用することをお勧めします。これらの設定を間違えると、ウェブサイトやサーバのパフォーマンスが低下する可能性があります。
  4. [OK]をクリックします。
nginx キャッシュ設定

Plesk インターフェースに表示される nginx キャッシュ設定は、nginx ディレクティブおよび nginx 構成ファイル内の特定のレコードに対応しています。詳細は以下の表を参照してください。

Plesk GUI に表示される nginx マイクロキャッシング設定

対応する nginx ディレクティブ

対応する nginx パラメータ(あれば)

[キャッシュサイズ]

proxy_cache_path

max_size

[キャッシュタイムアウト]

proxy_cache_valid

 

[キャッシュキー]

proxy_cache_key

 

[cookie のあるリクエストをキャッシュ]

nginx 構成ファイルに指定

 

[次の場所でキャッシュを無効にする]

nginx 構成ファイルに指定

 

[次の場合にキャッシュをバイパス]

proxy_cache_bypass

 

[キャッシュが古いレコードを戻す]

proxy_cache_use_stale

 

注:nginx を PHP-FPM ハンドラとともに使用するウェブサイトでは、proxy_cache* ディレクティブが fastcgi_cache* に置き換えられます。たとえば、[キャッシュキー]設定は proxy_cache_key ディレクティブではなく fastcgi_cache_key で制御されます。

[cookie のあるリクエストをキャッシュ]設定

デフォルトで、nginx は Cookie HTTP ヘッダが含まれる HTTP リクエストをキャッシュしません。この挙動を変更して、nginx に特定の cookie が含まれる HTTP リクエストをキャッシュさせることができます。これには、該当する cookie の名前を[cookie のあるリクエストをキャッシュ]フィールドに指定します。たとえば、cookie 名 _ga および _gid を指定すると、nginx は _ga または _gid の含まれる cookie ヘッダを持つ HTTP リクエストのみをキャッシュします。nginx は、このフィールドに指定されていない cookie の名前が 1 つ以上含まれる cookie ヘッダを持つ HTTP リクエストはキャッシュしません。

куки

[次の場所でキャッシュを無効にする]設定

nginx が特定のウェブコンテンツをキャッシュしないように nginx を構成することで、サーバの負荷を軽減できます。これには、[次の場所でキャッシュを無効にする]フィールドに、必要な $request_uri を指定します。たとえば、/wp-admin/ を指定すると、nginx は WordPress Admin Panel に関連するコンテンツをキャッシュしません。

uri

注:[cookie のあるリクエストをキャッシュ]フィールドと[次の場所でキャッシュを無効にする]フィールドに複数の値を指定したい場合、個々の値を個別の行に指定します。

 
サーバ設定のデフォルト値

カスタム値を入力して各パラメータの値を設定することも、デフォルト値のまま残すこともできます。後者の場合、サーバ管理者(ホスティング事業者)が定義したデフォルトのウェブサーバ構成の値が使用されます。

入力した値はデフォルト値よりも優先されます。唯一の例外は[サイトへのアクセスを拒否]設定です。デフォルト構成の IP アドレス、および指定した IP アドレスがウェブサイトに適用されます。デフォルト構成で拒否されている IP アドレスを「許可」に設定した場合など、競合が発生している場合、Apache は管理者が入力した設定を使用します。