Apache と Nginx の設定
デフォルトで、Plesk は Apache ウェブサーバ ( http://ja.wikipedia.org/wiki/Apache_HTTP_Server )を使用して、ウェブサイトのページをクライアント(訪問者がウェブサイトへのアクセスに使用するブラウザなど)へ配信します。パフォーマンス向上のために、Apache は nginx という別のウェブサーバによって補完されます。nginx のみを使用するオプションもあります。
デフォルトのウェブサーバ設定 は、サーバ管理者(ホスティング事業者)が指定します。これらの設定により、ウェブサーバが各種ファイルを処理する方法やウェブサーバが SSL/TLS を使用する方法、ログファイルの保存場所などが決まります。
ただし、ウェブサイトの所有者は、自分のウェブサイト用の カスタムウェブサーバ設定 をセットアップできます。たとえば、インデックスファイルのタイプを追加したり、サイトアクセスに制限を加えたりできます。
注釈: ホスティング契約に適切なパーミッションが設定されていれば、ウェブサイトのウェブサーバ設定を調整できます。
Apache と Nginx の設定を調整する
Apache と nginx には、ドメインレベルでカスタマイズできる特定の設定があります。これらの設定は、 [ウェブサイトとドメイン]> ドメイン名 > [Apache と nginx の設定] にあり、以下の 2 グループに分類されます。
-
Apache 共通設定
-
nginx 設定
MIME タイプを構成する
MIME タイプ は、ファイルの拡張子とファイルタイプを紐付け、ウェブブラウザに対して特定のファイルタイプをどのように処理すべきか指示します。たとえば、以下の MIME タイプを見てみましょう。
text/plain .txt
このタイプは、ウェブブラウザに対し、すべての .txt
ファイルをプレーンテキストとして処理するように指示しています。一般的な MIME タイプはデフォルトであらかじめ構成されています。ただし、標準的ではない拡張子をファイルに使用していることが原因でウェブサイトのページがウェブブラウザで正しく処理されない場合、カスタム MIME タイプを 1 つまたは複数構成する必要があります。
カスタム MIME タイプを構成する:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進みます。
- [MIME タイプ] の下で、 [カスタム値を入力] ラジオボタンをオンにします。
- 必要な MIME タイプを入力または削除して [OK] をクリックします。
Apache ハンドラを構成する
Apache ハンドラは、特定の拡張子のファイルをどのように処理すべきかウェブサーバに指示します。たとえば、以下のハンドラを見てみましょう。
cgi-script .cgi
このハンドラは、すべての .cgi
ファイルを cgi スクリプトとして処理するようにウェブサーバに指示しています。デフォルトで、一般的な拡張子のファイル用のハンドラはあらかじめ構成されています。ただし、特定の拡張子のファイルの処理に使用するハンドラを変更したい場合、カスタムハンドラを 1 つまたは複数構成する必要があります。
カスタムハンドラを構成するには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進みます。
- [ハンドラ] の下で、 [カスタム値を入力] ラジオボタンをオンにします。
- 必要なハンドラを入力または削除して [OK] をクリックします。
ウェブサイトへのアクセスを禁止する
特定の訪問者による御社ウェブサイトへのアクセスを禁止することができます。以下に対するアクセスを禁止できます。
- 個別 IP アドレス(たとえば
192.168.1.110
) - IP アドレスのサブネット(たとえば
127.0.0.1/8
) - 特定のホスト名(たとえば
example.com
) - すべての人(アスタリスク記号
*
を使用)
ブロックされた訪問者がウェブサイトを閲覧しようとすると「403 Forbidden」エラーメッセージが表示されます。
ウェブサイトへのアクセスを構成するには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進みます。
- [ウェブサイトへのアクセスを禁止] の下で、 [カスタム値を入力] ラジオボタンをオンにします。
- 必要な IP アドレス、サブネット、ホスト名を入力または削除します。
- サブネットをブロックし、そのサブネットに属する 1 つまたは複数の IP アドレスは許可したい場合、 [除外] フィールドに IP アドレスを入力します。
- [OK] をクリックします。
インデックスファイルを構成する
ウェブサイトへの訪問者が特定のファイルではなくディレクトリ(たとえば www.example.com/index.html
ではなく www.example.com
または www.example.com/example
)をリクエストして URL を参照すると、Apache は表示するインデックスファイルを探します。デフォルトで、Apache は以下のファイルを(指定した順序で)探します:
index.html
index.cgi
index.pl
index.php
index.xhtml
index.htm
index.shtml
7 ファイルすべてがディレクトリにある場合、閲覧する訪問者には index.html
ファイルが表示されます。 index.html
がない場合、Apache は代わりに index.cgi
ファイルを探し、これがなければ次のものを探します。適当なインデックスファイルが見つからない場合、デフォルトで「403 Forbidden」エラーが表示されます。
Plesk では、御社のウェブサイトのディレクトリを訪問者が閲覧するときに Apache が探すインデックスファイルをカスタマイズできます。
- Apache がインデックスファイルを探す順序は変更可能です(たとえば、デフォルトで
index.html
ファイルではなくindex.php
を表示させることができます)。 - インデックスファイル名をリストに追加したり、削除することができます(たとえば、ウェブサイトのデフォルトページの名前が
hello.php
の場合、Apache にこれをデフォルトで表示させることができます)。
インデックスファイルを構成するには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進みます。
- [インデックスファイル] の下で、 [カスタム値を入力] ラジオボタンをオンにします。
- 必要なインデックスファイル名を、Apache が探すべき順序で入力または削除し、 [OK] をクリックします。
「Expires」ヘッダを構成する
Apache の expires
ヘッダは、ウェブブラウザがウェブコンテンツのコピーをキャッシュしてから、次にサーバにリクエストするまでどれくらいの時間保持するのかを制御します。このヘッダを構成すると、サーバの負荷が軽減され、ウェブサイトがスピードアップする可能性があります。
たとえば、有効期間を 10 日間に設定するとします。ある訪問者が御社のウェブサイトを閲覧し、 index.html
ページをリクエストします。訪問者のウェブブラウザは、ページのコピーをキャッシュに保存し、その後 10 日間は訪問者がウェブサイトを閲覧するたびに、キャッシュされたコピーを表示します。11 日目に、ページが再びリクエストされると、ブラウザはサーバにこのページを再びリクエストします。キャッシュに保存されたページは期限が切れているためです。
動的コンテンツを使用するウェブサイトの expires
ヘッダを構成する場合、 [response with Expires headers for static files only(静的ファイルに対してのみ Expires ヘッダで応答)] オプションを有効にすることをお勧めします。これを設定しなければ、期限が切れるまでの期間、動的コンテンツを含む全コンテンツが訪問者のブラウザのキャッシュに保存されます。これはお勧めしません。動的コンテンツは原則として頻繁に更新されます。
「Expires」ヘッダを構成するには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進みます。
- [Expires] の下で、 [カスタム値を入力] ラジオボタンをオンにします。
- 必要な有効期間を指定します(推奨される有効期間は 14 日間)。
- ウェブサイトで動的コンテンツを使用している場合、 [response with Expires headers for static files only(静的ファイルに対してのみ Expires ヘッダ付きで応答)] チェックボックスがオンになっていることを確認します。
- [OK] をクリックします。
注釈: nginx が有効な場合、expires ヘッダがあるのは Apache によって提供されるファイルのみです。 [スマート統計ファイル処理] チェックボックスがオンの場合、静的ファイルとして処理されるファイルは Apache および nginx のデフォルト構成で決まります。 [静的ファイルを nginx で直接処理] チェックボックスがオンになっており、何らかのファイル拡張子が指定されている場合、nginx は指定された拡張子のファイルのみを提供します。
追加のヘッダを構成する
以下のパターンに従って、HTTP 応答に追加のヘッダを構成できます。
名前:値
HTTP 応答ヘッダにはリクエストされたページについての情報が含まれ、ウェブブラウザに各種アクションの実行を指示します。たとえば、以下のヘッダはウェブサイトへの訪問者を クリックジャッキング から守ります。
X-Frame-Options: DENY
追加のヘッダを構成するには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進みます。
- [追加のヘッダ] の下で、 [カスタム値を入力] ラジオボタンをオンにします。
- 必要なヘッダを入力または削除して [OK] をクリックします。
シンボリックリンクのフォローを制限する
デフォルトで、Apache はシンボリックリンクをフォローできます。ウェブサイトでシンボリックリンクを使用しない場合、このオプションには軽微なセキュリティ上のリスクがあるため、無効にすることをお勧めします。
Apache によるシンボリックリンクのフォローを禁止するには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進みます。
- [シンボリックリンクのフォローを制限する] チェックボックスをオンにして [OK] をクリックします。
nginx のみのホスティング
Plesk for Linux では、nginx と PHP-FPM を組み合わせてウェブサイトをホストできます。この場合、ウェブサイトへの要求は Apache に渡されず、nginx によって処理されます。nginx のみのホスティングは PHP ウェブサイトで特に有効なオプションですが、静的ウェブサイトやアプリケーションサーバのホスティングにも適しています。Apache を停止または無効にすることなく nginx で処理するように個別のウェブサイトを構成することができ、Apache を使用してホストされるウェブサイトにはいかなる影響も与えません。
注釈: Plesk サービス(ウェブメールなど)は引き続き Apache を使用して機能し、nginx のみのホスティングに切り替えたことによる影響を受けません。
ドメインに対して nginx のみのホスティングをオン/オフにするには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進みます。
- [nginx 設定] セクションで、 [プロキシモード] チェックボックスをオフにします。
- [適用] をクリックします。
ドメインを 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 経由で提供するには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進み、「nginx 設定」のセクションまでスクロールします。
- [プロキシモード] と [スマート統計ファイル処理] チェックボックスをオンにします。
- [静的ファイルを nginx で直接処理] チェックボックスがオンになっていないことを確認します。
- [OK] をクリックします。
特定の拡張子を持つファイルのみ nginx 経由で提供する
希望する場合、特定の拡張子を持つファイルのみを静的コンテンツとして nginx で提供することができます。通常なら静的ファイルとして分類される他のファイルは、Apache から提供します。このシナリオでは、特定の拡張子を持つファイルへのリクエストが Apache に到達することはありません。その結果、Apache ハンドラを通過しません。つまり、リライトルールや .htaccess
ディレクティブは適用されません。
特定の静的コンテンツのみを nginx 経由で提供するには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進み、「nginx 設定」のセクションまでスクロールします。
- [プロキシモード] と [静的ファイルを nginx で直接処理] チェックボックスをオンにします。
- デフォルトで、特定のファイル拡張子は既に [静的ファイルを nginx で直接処理] ボックスで構成されています。必要に応じて拡張を追加または削除できます。ファイル拡張子を区切るには、スペースまたは「|」記号を使用します。
- [OK] をクリックします。
注釈: [静的ファイルを nginx で直接処理]オプションを有効にすると、[スマート統計ファイル処理]チェックボックスがオンのままでも、このデフォルトモードが自動的に無効になります。
すべての静的コンテンツと動的コンテンツを Apache 経由で提供する
希望する場合、nginx を無効にして、Apache が静的および動的のすべてのコンテンツを提供するように構成できます。これは、nginx のトラブルシューティングといった特定の状況で役に立ちます。本番ウェブサイトでは、Apache ですべてのコンテンツを処理するのはお勧めしません。
すべての静的コンテンツと動的コンテンツを Apache 経由で提供するには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進み、「nginx 設定」のセクションまでスクロールします。
- [プロキシモード] チェックボックスをオンにします。
- [スマート統計ファイル処理] と [静的ファイルを nginx で直接処理] チェックボックスをクリアします。
- [OK]をクリックします。
nginx キャッシュを有効にする
nginx キャッシュを有効にすると、nginx プロキシサーバが特定のウェブサイトの動的コンテンツをキャッシュできるようになります。キャッシュされたデータは短時間保存されます(通常は数秒以内)。これにより、ウェブサイトのロードが高速化し、サーバ負荷が軽減されます。
nginx キャッシュを有効にするのは、特定の特徴を持つウェブサイト(たとえば、人気ブログやニュースサイト)に対してのみお勧めします。
- トラフィックが多い
- コンテンツの更新間隔が数秒程度
以下の特長を持つウェブサイトで nginx キャッシュを有効にするのは、無意味であるか、害がある場合もあります。
- トラフィックが中程度または少ない
- コンテンツの更新間隔が数秒より長い
- パーソナライズされたコンテンツが使用されている(たとえば、訪問者の地理的所在地やショッピングカートの内容)
nginx キャッシュを有効にするには:
- [ウェブサイトとドメイン]> [Apache と nginx の設定] に進みます。
- [nginx 設定]セクションで、[nginx キャッシュを有効にする]チェックボックスをオンにします。
- (オプション)nginx キャッシュ設定をカスタマイズできます。nginx キャッシュについて詳しくない場合、デフォルト設定のまま使用することをお勧めします。これらの設定を間違えると、ウェブサイトやサーバのパフォーマンスが低下する可能性があります。
- [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 に関連するコンテンツをキャッシュしません。
注釈: [cookie のあるリクエストをキャッシュ]フィールドと[次の場所でキャッシュを無効にする]フィールドに複数の値を指定したい場合、個々の値を個別の行に指定します。
サーバ設定のデフォルト値
カスタム値を入力して各パラメータの値を設定することも、 デフォルト 値のまま残すこともできます。後者の場合、サーバ管理者(ホスティング事業者)が定義したデフォルトのウェブサーバ構成の値が使用されます。
入力した値はデフォルト値よりも優先されます。唯一の例外は [サイトへのアクセスを拒否] 設定です。デフォルト構成の IP アドレス、および指定した IP アドレスがウェブサイトに適用されます。デフォルト構成で拒否されている IP アドレスを「許可」に設定した場合など、競合が発生している場合、Apache は管理者が入力した設定を使用します。