10.8. 仮想ホスト

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

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

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

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

#NameVirtualHost *
#
#<VirtualHost  *>
#    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を共有します。 DocumentRootはWebサーバー用に別にすることをおすすめします。

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

#Listen 80

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