10.8. 仮想ホスト

Apache HTTP サーバー に組込みの仮想ホスト機能を使用すれば、要求されているIPアドレス、ホスト名、ポートに基づいて、サーバーが異なる情報を提供できるようにします。仮想ホストの使い方についての詳細ガイドはオンラインのhttp://httpd.apache.org/docs-2.0/vhosts/でご覧になれます。

10.8.1. 仮想ホストのセットアップ

名前ベースの仮想ホストを作成するには、範例としてhttpd.conf に提供されている仮想ホストコンテナを使用するのが最適です。

仮想ホストの範例は以下のようになります。

#NameVirtualHost *:80
#
#<VirtualHost  *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

名前ベースの仮想ホスト機能を起動するには、ハッシュマーク(#) を削除して、アスタリスク(*)をマシンに割り当てられた IPアドレスに置き換えることで、NameVirtualHost行の コメントを外します。

次に、<VirtualHost>コンテナのコメントマークを外して カスタマイズすることで、仮想ホストを設定します。

<VirtualHost>行で、アスタリスク(*) をサーバーのIPアドレスに変更します。ServerNameをマシンに割り当てられた有効なDNS名に変更し、必要に応じて他のディレクティブを設定します。

<VirtualHost>コンテナは非常にカスタマイズしやすく、 メインサーバーの設定内で使用できるディレクティブのほとんどすべてに応じます。

ヒントヒント
 

仮想ホストがデフォルトではないポートをリスニングするよう設定している場合には、 そのポートを/etc/httpd/conf/http.confファイルのグローバル設定セクション内のListenディレクティブに追加する必要があります。

新たに作成した仮想ホストを起動するには、Apache HTTP サーバー を再ロードまたは再起動する必要があります。これを行なう手順については、項10.4を参照してください。

名前ベースの仮想ホスト及びIPアドレスベースの仮想ホストの作成と設定に関する 総合情報は、オンラインのhttp://httpd.apache.org/docs-2.0/vhosts/をご覧ください。

10.8.2. Secure Web Serverでの仮想ホスト

デフォルトでは、Apache HTTP サーバー は非セキュアとセキュア両サーバーとして設定されます。 非セキュアサーバー、セキュアサーバーのいずれも同じ IP アドレスとホスト名を使用しますが、リッスンするポートはそれぞれ80と443で異なります。この理由で 非セキュア、セキュアの両通信を同時に行なうことができます。

SSL 強化した HTTP 送信のひとつの特性は、標準の HTTP プロトコルよりもリソース集中型であるため、セキュアサーバーが1秒に処理できるページ数が限られます。 この理由から、特にトラフィックの激しい Web サイトでは、セキュアサーバーから 利用する情報は最小限に抑えた方がよいでしょう。

重要重要
 

HTTP要求が正しい名前ベースの仮想ホストを識別する前に、 名前ベースの仮想ホストをセキュアWebサーバーと一緒に使用しないでください。 SSLハンドシェークが発生します。名前ベースの仮想ホストは非セキュアWebサーバー でのみ機能します。

セキュアサーバーの設定ディレクティブは、/etc/httpd/conf.d/ssl.confファイルの仮想ホストタグ内に含まれています。

デフォルトでは、両セキュア Web サーバーと非セキュア Web サーバーは同じDocumentRootを共有します。Webサーバー用には DocumentRootを別に使用可能にすることをおすすめします。

非セキュアな Web サーバーの接続認可を停止するには、httpd.confListen 80となっている行の先頭にハッシュマークを入れてコメントアウトします。それが終了すると、以下のようになります:

#Listen 80

SSL強化したWebサーバーの設定方法についての詳細は、Red Hat Enterprise Linux システム管理ガイドにあるApache HTTP セキュアサーバーの設定の章を参照してください。高度な設定のヒントについては、 Apache Software Foundation のドキュメントが次のURLでご覧になれます。