4.3 サーバマシンのバーチャル化(バーチャルホスト)
(1) サーバ名に基づくバーチャルホスト
サーバ名に基づくバーチャルホストは,一つのIPアドレスに対して複数のホスト名をDNSサーバなどで定義しておき,クライアントからそのホスト名でアクセスすることで,複数ホストのように見せます。ネットワークインタフェースを複数設定する必要はありません。サーバ名に基づくバーチャルホストでは,SSL対応ホストと非SSL対応ホストの組み合わせ,または異なる複数のSSL対応ホストの組み合わせでは構築できません。それらの組み合わせで構築する場合は,IPアドレスに基づくバーチャルホストで構築してください。
- (例)1台のサーバマシン(IPアドレス:172.17.40.10)上の一つのWebサーバでポートを一つオープンし,Webブラウザからのリクエストに応じてホストを切り替える運用をする。
- Webブラウザからの要求が,http://www1.xxx.soft.hitachi.co.jp/の場合
- <Application Serverのインストールディレクトリ>/httpsd/htdocs1/index.html(DirectoryIndexの指定がindex.htmlの場合)を参照します。
- Webブラウザからの要求が,http://www3.xxx.soft.hitachi.co.jp/の場合
- <Application Serverのインストールディレクトリ>/httpsd/htdocs3/index.html(DirectoryIndexの指定がindex.htmlの場合)を参照します。
- ただし,この方法はWebブラウザからのリクエスト中のHostヘッダで,"Host: www1.xxx.soft.hitachi.co.jp"のようにホスト名(必要に応じてポート番号)を指定してきた場合だけ利用できます。古いWebブラウザや,簡易タイプのWebブラウザでは利用できないことがあるので注意が必要です。その場合,最も上位に記述された<VirtualHost>ブロックの指定(この例ではwww1.xxx.soft.hitachi.co.jp)が有効になります。
Port 80 …1.
NameVirtualHost 172.17.40.10 …2.
<VirtualHost 172.17.40.10> …3.
DocumentRoot "<Application Serverのインストールディレクトリ>/httpsd/htdocs1" …4.
ServerName www1.xxx.soft.hitachi.co.jp …5.
</VirtualHost>
<VirtualHost 172.17.40.10> …6.
DocumentRoot "<Application Serverのインストールディレクトリ>/httpsd/htdocs2" …7.
ServerName www2.xxx.soft.hitachi.co.jp …8.
</VirtualHost>
<VirtualHost 172.17.40.10> …9.
DocumentRoot "<Application Serverのインストールディレクトリ>/httpsd/htdocs3" …10.
ServerName www3.xxx.soft.hitachi.co.jp …11.
</VirtualHost> |
- ポート番号は一つ
- サーバ名に基づくバーチャルホストのIPアドレス
- バーチャルホスト1の定義
- ルートディレクトリの定義
- サーバ名1の定義
- バーチャルホスト2の定義
- ルートディレクトリの定義
- サーバ名2の定義
- バーチャルホスト3の定義
- ルートディレクトリの定義
- サーバ名3の定義
- 注 www1.xxx.soft.hitachi.co.jp,www2.xxx.soft.hitachi.co.jp,www3.xxx.soft.hitachi.co.jpは,DNSサーバなどに172.17.40.10ホストのホスト名として登録されていなければなりません。
![[図データ]](figure/zu020700.gif)
(2) IPアドレスに基づくバーチャルホスト
IPアドレスに基づくバーチャルホストは次の三つの方法でクライアントには複数ホストのように見せます。
- 複数のポートを使用
- 1台のサーバマシンに複数のネットワークインタフェースを指定
- IPアドレスのエイリアスを指定
- (例1)1台のサーバマシン上の一つのWebサーバでポートを二つオープンし,SSL対応Webサーバと非対応Webサーバの二つのホストとして運用する。
Listen 443 …1
Listen 80 …2
SSLDisable …3
<VirtualHost xxx.soft.hitachi.co.jp:443> …4
DocumentRoot "<Application Serverのインストールディレクトリ>/httpsd/ssldocs"
SSLEnable …5
SSLCertificateFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/server/httpsd.pem"
SSLCertificateKeyFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/server/httpsdkey.pem"
</VirtualHost>
<VirtualHost xxx.soft.hitachi.co.jp:80> …6
DocumentRoot "<Application Serverのインストールディレクトリ>/httpsd/htdocs"
SSLDisable …7
</VirtualHost> |
- ポート番号の定義
- ポート番号の定義
- メインのサーバはSSLを無効に設定
- ポート番号443のバーチャルホストの定義
- SSL有効
- ポート番号80のバーチャルホストの定義
- SSL無効
![[図データ]](figure/zu020600.gif)
- (例2)1台のサーバマシン上に二つのNIC(Network Interface Card)(IPアドレス:172.17.40.10,172.17.40.20)を備え,一つのWebサーバでWebブラウザからのリクエストに応じてホストを切り替えて運用する。
- Webブラウザからのリクエストが,http://172.17.40.10/の場合
- <Application Serverのインストールディレクトリ>/httpsd/htdocs1/index.html(DirectoryIndexの指定がindex.htmlの場合)を参照します。
- Webブラウザからのリクエストが,http://172.17.40.20/の場合
- <Application Serverのインストールディレクトリ>/httpsd/htdocs2/index.html(DirectoryIndexの指定がindex.htmlの場合)を参照します。
Port 80
<VirtualHost 172.17.40.10>
DocumentRoot "<Application Serverのインストールディレクトリ>/httpsd/htdocs1"
ServerName www10.xxx.soft.hitachi.co.jp
</VirtualHost>
<VirtualHost 172.17.40.20>
DocumentRoot "<Application Serverのインストールディレクトリ>/httpsd/htdocs2"
ServerName www20.xxx.soft.hitachi.co.jp
</VirtualHost> |
![[図データ]](figure/zu020800.gif)