仮想ホストの使用

Warning警告
 

Apache設定ツール(Red Hat Linuxで提供されているGUIユーティリティ)を使用する場合は、Apache Webサーバーのhttpd.conf設定ファイルを編集しないでください。逆に、手作業でhttpd.confを編集する場合は、Apache設定ツールを使用しないでください。

Apache設定ツールの詳細を知りたい場合は、オフィシャル Red Hat Linux カスタマイズガイドを参照してください。

 Apacheの仮想ホスト機能を使用すれば、IPアドレスごと、ホスト名ごと、ポートごとに、同一マシン上で別々のサーバーを動作させることができます。仮想ホストを使用することに興味がある場合は、マシン上またはWebのhttp://httpd.apache.org/docs/vhosts/上にあるApacheマニュアルの中に完全な情報が用意されています。

Note注意
 

名前ベースの仮想ホストをセキュアWebサーバーと併用できないのは、適切な名前ベースの仮想ホストを識別するためのHTTP要求の前にSSLハンドシェークが(ブラウザがセキュアなWebサーバーの証明書を受け付けるときに)出現するためです。名前ベースの仮想ホストを使用したい場合、それらのホストはセキュアでないWebサーバーについてしか機能しなくなります。

 本章のthe section called httpd.confの設定ディレクティブで説明したように、仮想ホストの設定は、httpd.confファイルの中で行われます。マシン上で仮想ホストの設定を変更する前に、上記のセクションを見直してください。

Secure Web Serverでの仮想ホスト

 Red Hat Linux Secure Web Serverのデフォルト設定では、セキュアでないサーバーとセキュアサーバーが動作します。どちらのサーバーも同じIPアドレスとホスト名を使用しますが、リスニングするポートが異なります。また、セキュアサーバーは仮想ホストです。この設定を使用することにより、考えられる中で最も効果的な方法で、セキュアな文書とセキュアでない文書の両方を提供することができます。セキュアなHTTP伝送は、セキュアでないものよりも時間を多く消費します。なぜならば、セキュアなトランザクションではより多くの情報がやりとりされるからです。したがって、セキュアでないWebトラフィックに関してセキュアサーバーを使用するのはよい考えではありません。

 セキュアサーバーに関する設定ディレクティブは、httpd.confファイルの仮想ホストタグの中に含まれています。セキュアサーバーの設定について何かを変更する必要が生じた場合、httpd.confファイルの仮想ホストタグの内側にある設定ディレクティブを変更する必要があります。セキュアサーバーに関する特定の機能(たとえばSSI)を有効化したい場合には、セキュアサーバーを定義する仮想ホストタグの中でそれらの機能を有効化する必要があります。

 「非仮想」ホストとしてのセキュアでないWebサーバーの設定は、httpd.confファイルの中で行われます。つまり、セキュアでないWebサーバーの設定オプションは、httpd.confファイルの仮想タグの外側で行われます。セキュアでないWebサーバーに関して何かを変更したい場合は、httpd.confの中の仮想ホストタグの外側で設定ディレクティブを変更する必要があります。

 デフォルトで、セキュアなWebサーバーとセキュアでないWebサーバーは、両方とも同じDocumentRoot、つまりhttpd.confで指定された設定ディレクティブ、を共有します。言い換えると、要求に対する応答としてHTMLファイルを提供する際に、セキュアなWebサーバーもセキュアでないWebサーバーも同じ場所を検索します。デフォルトで、DocumentRoot/var/www/htmlと設定されています。

 セキュアサーバーとセキュアでないサーバーによる共有をやめさせるためにDocumentRootを変更するには、httpd.conf内のDocumentRootディレクティブのいずれかを変更します。仮想ホストタグの外側にあるDocumentRootによって、セキュアでないWebサーバー用のDocumentRootが定義されます。セキュアサーバーを定義する仮想ホストタグの中のDocumentRootはセキュアなWebサーバーに関するものです。

 何らかの理由のためにセキュアでないWebサーバーをマシン上で無効化したい場合には、無効化することができます。セキュアサーバーはセキュアなWeb通信用のデフォルトのポートであるポート443上でリスニングし、セキュアでないWebサーバーはセキュアでないWeb通信用のデフォルトのポートであるポート80上でリスニングします。セキュアでないWebサーバーが接続を受け付けるのを止めるには、httpd.confの中で以下のような行を探します。

Port 80

 上記の行を以下のように変更します。

Port 443

 次に、Listen 80の行をコメントアウトする必要があります。

 上記2つのステップを実行した後でも、Red Hat Linux Secure Web Serverは引き続きセキュアなWeb通信用のデフォルトのポートである、ポート443で接続を受け付けます。ただし、サーバーはセキュアでない通信用のデフォルトのポートであるポート80では接続を受け付けなくなるので、事実上セキュアでないWebサーバーが無効化されます。

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

 ほとんどのユーザーは、おそらくWebサーバーを出荷状態で使用することでしょう。したがって、ユーザーは組み込みの仮想ホスト機能を使用することになりますが、httpd.confの仮想ホストディレクティブを操作する必要は生じないでしょう。ただし、何か別の理由のために仮想ホスト機能を使用したくなった場合には、使用することができます。

 仮想ホストを作成するためには、例で示したように、httpd.confの仮想ホストの行を変更するか、または独自の仮想ホストセクションを作成する必要があります(名前ベースの仮想ホストがセキュアなWebサーバーの場合に機能しないことに注意してください。SSL対応の仮想ホストが必要な場合には、IPアドレスベースの仮想ホストを使用する必要があります。ただし、セキュアでないサーバーは、IPアドレスベースと名前ベースの両方の仮想ホストをサポートします)。

 サンプルの仮想ホストの行は以下のようになります。

#<VirtualHost ip.address.of.host.some_domain.com>
# ServerAdmin webmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error_log
# CustomLog logs/host.some_domain.com-access_log common
#</VirtualHost>

 すべての行を非コメント化します。次に、マシンや仮想ホストに関する正確な情報を各行に追加します。

 先頭行で、ip.address.of.host.some_domain.comを組織のサーバーのIPアドレスに変更します。ServerNameを、仮想ホストとして使用する有効なDNS名に変更します(ごまかしはしないでください。有効なドメイン名の取得方法がわからない場合は、システム管理者に問い合わせてください)。

 さらに、httpd.confNameVirtualHostの行のいずれかのコメント記号を削除する必要があります。

#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78

 いずれかの行のコメント記号を削除し、IPアドレスを、該当する仮想ホストのIPアドレス(必要であればポートも)に変更します。

 仮想ホストをセットアップする理由しだいでは、仮想ホストタグの間に、その他多数の設定ディレクティブを挿入することができます。

仮想ホストをセットアップしてそのホストにデフォルトポート以外のポート(セキュアでないWeb通信のデフォルトポートは80、セキュアなWeb通信のデフォルトのポートは443)でリスニングさせたい場合は、そのポート用の仮想ホストをセットアップし、そのポートと対応するListenディレクティブをhttpd.confに追加する必要があります。

 特定のポートについて仮想ホストを機能させたい場合には、仮想ホスト設定の先頭行にそのポート番号を追加します。先頭行を以下のようにする必要があります。

<VirtualHost ip_address_of_your_server:12331>

 この行により、ポート12331上でリスニングする仮想ホストが作成されます。上記の例において、12331を実際に使用するポート番号と置き換えます。

 httpd.confListen行の下に、以下のような行を追加します。そうすることで、Webサーバーに対してポート12331上でリスニングするように指示します。

Listen 12331

 新しい仮想ホストを起動するためには、httpdを再起動しなければなりません。httpdの起動停止の方法に関する説明については、the section called httpdの起動と停止を参照してください。

 名前ベースの仮想ホストと、IPアドレスベースの仮想ホストの作成と設定に関する詳細情報は、http://httpd.apache.org/docs/vhosts/にあります。仮想ホストの使用法については、Apache Groupの、仮想ホストに関する文書をチェックしてください。