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
ヘッダを構成する場合、[静的ファイルに対してのみ期限切れヘッダ付きで応答]オプションを有効にすることをお勧めします。これを設定しなければ、期限が切れるまでの期間、動的コンテンツを含む全コンテンツが訪問者のブラウザのキャッシュに保存されます。これはお勧めしません。動的コンテンツは原則として頻繁に更新されます。
注釈: 「Expires」ヘッダ機能では、mod_expires
が Apache で有効である必要があります。
「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]をクリックします。
サーバ設定のデフォルト値
カスタム値を入力して各パラメータの値を設定することも、デフォルト値のままにすることもできます。後者の場合、サーバ管理者(ホスティング事業者)が定義したデフォルトのウェブサーバ構成の値が使用されます。
入力した値はデフォルト値よりも優先されます。唯一の例外は[サイトへのアクセスを拒否]設定です。デフォルト構成の IP アドレス、および指定した IP アドレスがウェブサイトに適用されます。デフォルト構成で拒否されている IP アドレスを「許可」に設定した場合など、競合が発生している場合、Apache は管理者が入力した設定を使用します。