ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

バーチャルホストの設定

 バーチャルホストは単独のサーバで複数のドメインのWebページを公開する方法です。 これを実現するための設定方法について解説します。 ネームバーチャルホストとIPバーチャルホストがありますが、ここではネームバーチャルホストの設定方法を解説します。 DNSサーバ、Webサーバ、プロキシサーバについて、設定が必要になります。
 ash.jpのWebサーバに、別のドメイン名(ここでは、***.ash.jpと***.co.jpとする)を追加するとします。

DNSの設定

 複数のドメイン名が、同じサーバを参照するようにDNSを設定します。 DNSの基本的な設定については、DNSサーバ構築を参照してください。

サブドメインの場合

 ***.ash.jpなど、サブドメインを追加する場合の設定例です。 /etc/dns/ash.zoneに、以下のような行を追加します。

***           IN     CNAME  name

 その後、namedを再起動する必要があります。

独自ドメインの場合

 ***.co.jpなど、独自のドメインを設定する場合です。 ドメイン名そのものはあらかじめ登録しておかねばなりません。 ドメイン申請方法を参照してください。
 まず、ocnなどの上流DNSに、***.co.jpを登録します。
 次に、/etc/dns/下に、***.zoneを作ります。

***.zoneファイルの例
;	@(#)***.zone	1.0	(***.co.jp)
;
;$ORIGIN	***.co.jp.
@		IN	SOA	name.ash.jp. root.***.co.jp. (
				1999090901 ; Serial
				3600       ; Refresh after 1 hour
				300        ; Retry after 5 minutes
				604800     ; Expire after 1 week
				14400 )    ; Minimum TTL of 4 hour
		IN	NS	name.ash.jp.
		IN	MX	10 mail.***.co.jp.
		IN	A	210.154.87.18
;
www		IN	A	210.154.87.18
mail		IN	A	210.154.87.18

 そして、named.confにおいて、その***.zoneを参照するように設定を追加します。

named.confの追加分
zone "***.co.jp" {
    type master;
    file "***.zone";
};

 その後、namedを再起動します。

Webサーバの設定

 バーチャルホストを実現するためのapacheの設定です。

サブドメインの場合

 httpd.confに以下のように追記します。
 WebサーバのIPアドレスが10.0.1.1であり、***.ash.jpで見せたいアドレスを、/usr/local/apache/htm/***とした場合の例を示します。

追加する内容例(サブドメインの場合)
NameVirtualHost 10.0.1.1 

<VirtualHost 10.0.1.1>
ServerAdmin ***@ash.jp
DocumentRoot /usr/local/apache/htm/***
ServerName ***.ash.jp
ErrorLog /usr/local/var/apache/log/error.log
TransferLog /usr/local/var/apache/log/access.log
</VirtualHost>

独自ドメインの場合

 httpd.confに以下のように追記します。
 WebサーバのIPアドレスが10.0.1.1であり、***.co.jpで見せたいアドレスを、/usr/local/apache/htm/***とした場合の例を示します。

追加する内容例(独自ドメインの場合)
NameVirtualHost 10.0.1.1 

<VirtualHost 10.0.1.1>
ServerAdmin ***@ash.jp
DocumentRoot /usr/local/apache/htm/***
ServerName ***.co.jp
ErrorLog /usr/local/apache/htm/***/error.log
TransferLog /usr/local/apache/htm/***/access.log
</VirtualHost>

プロキシサーバの設定

 Webサーバがローカルネットにあり、DeleGateで中継している場合は、DeleGateの設定を追加しなければいけません。
 バーチャルホストは、host名の文字列によって別のページに分岐します。 しかし、基本的にDeleGateはその情報を中継しないので、中継するように設定しなければいけません。 プロキシサーバ設定方法も参照してください。
 80番ポートの起動時に、以下のような設定で起動するようにします。

/usr/local/sbin/delegated -P80 SERVER='http://10.0.1.1' \
  MOUNT='/* http://10.0.1.1/* host=-***.co.jp,genvhost=***.co.jp' \
  MOUNT='/* http://10.0.1.1/* host=-***.ash.jp,genvhost=***.ash.jp' \
  OWNER=wmaster \
  PERMIT='*:10.0.1.1:*' \
  AUTH="forward:*:" \
  ACTDIR=/usr/local/etc/delegate \
  VARDIR=/usr/local/etc/delegate \

 mount機能を使って、ホスト名の文字列が***.co.jpだったとき(host=-***.co.jp)、***.co.jpという文字列をWebサーバに送る(genvhost=***.co.jp)という設定です。

動作確認

 ブラウザを起動して、***.co.jpや***.ash.jpでページが見れることを確認します。
 ただし、DNS情報がセカンダリに反映されるのには少し時間がかかることには注意して下さい。



Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp