[Up] [Next] [Previous]

マルチホームサーバの 作り方

NCSA httpd 1.5 以降及び Apache では、マルチホームサーバを 構築できます。マルチホームサーバというのは、複数のドメインのホームペー ジ提供サービスを一つのWWWサーバで行う提供機能をいいます。

この技術は、インターネットのサービスプロバイダや、ホームページレンタル 会社等で使われています。例えば、www.service.co.jp というレン タル会社があるとします。従来の方法では、

http://www.service.co.jp/client1/

http://www.service.co.jp/client2/
のような URL によるホームページのレンタルしかできませんでしたが、マル チホーム(仮想ホスト)機能を使うことによって、以下のような URL によるホー ムページレンタルが可能となります。

http://www.client1.co.jp/

http://www.client2.co.jp/
このようなアクセス方法を提供するには、HTTP/1.0 プロトコルの制限により、 異なるIPアドレスを必要とします。そのため、マルチホーム用サーバを提供す るホストは、複数のドメインを一つのホスト計算機に割り当てる、すなわち 一つのインタフェースに複数の IP アドレスを 割り当てる必要があります。

上記の方法では、無駄なIPアドレスを使ってしまい、あまり好ましくありませ ん。Apache では、一つのアドレスで、対応できるように改造されています。 (IPベースではない仮想ホスト機能)

なお、HTTP/1.1 では、マルチホスト機能がサポートされます。

ドメイン名とIPアドレスの割り振り

例えば、一つのクラス C アドレス(192.168.1.0/255.255.255.0、ここでは便 宜上、プライベートアドレスで説明します)を所有していた場合、ホストの primary アドレスに 192.168.1.1 を割り振り、残りの IP アドレスに異なる ドメインのホスト名を以下のように割り振ります。
192.168.1.1 www.main.co.jp ホームページ提供会社
192.168.1.2 www.aaaaa.co.jp お客様:会社AAAAA
192.168.1.3 www.bbbbb.co.jp お客様:会社BBBBB
192.168.1.4 www.ccccc.co.jp お客様:会社CCCCC
192.168.1.5 www.ddddd.co.jp お客様:会社DDDDD
そして、サーバ側では、BSD/OS のように ifconfig -alias コマン ドが使用できるものは、
ifconfig ef0 inet 192.168.1.1 link1
ifconfig ef0 192.168.1.2 alias
ifconfig ef0 192.168.1.3 alias
ifconfig ef0 192.168.1.4 alias
ifconfig ef0 192.168.1.5 alias
のように設定します。

また、SunOS 4.x のように vif が使用できる場合は(パッチが必要 です)、次のように設定します。

ifconfig vif0 192.168.1.2 up
arp -s 192.168.1.2  pub
ifconfig vif1 192.168.1.3 up
arp -s 192.168.1.3  pub
Linux では、次のように設定します。
ifconfig eth0:0 192.168.1.2 (etc)
route add -host 192.168.1.2 dev eth0:0
ifconfig eth0:1 192.168.1.3 (etc)
route add -host 192.168.1.3 dev eth0:1

DNSへの登録

ドメインを NIC (日本の場合 JPNIC) に申請し、次のように DNS の設定を行 います。

named.boot ファイルを次のように設定します。

cache       .                        root.cache

primary     0.0.127.in-addr.arpa     rev/local.rev
primary     localhost                zone/localhost
;
primary     aaaaa.co.jp              zone/aaaaa
primary     bbbbb.co.jp              zone/bbbbb
primary     ccccc.co.jp              zone/ccccc
primary     ddddd.co.jp              zone/ddddd
primary     1.168.192.in-addr.arpa   rev/192.168.1
zone/aaaaa ファイルは、
@           SOA         (......)
            NS          ns.main.co.jp.
            MX  100     mail1.main.co.jp.
            MX  100     mail2.main.co.jp.
www         A           192.168.1.2
のように設定し、他ドメインでも同様に設定します。そして、 rev/192.168.1 ファイルは、
@           SOA         (......)
            NS          ns.main.co.jp.
2           PTR         www.aaaaa.co.jp.
3           PTR         www.bbbbb.co.jp.
4           PTR         www.ccccc.co.jp.
5           PTR         www.ddddd.co.jp.
のように設定します。

一つのアドレスで済ませる場合、ゾーンファイルを次のように設定します。

www.aaaaa.co.jp.      CNAME      www.main.co.jp.

サーバソフトの設定

httpd.conf ファイルで、ホームページ提供ドメインに関する 情報を記述します。

<VirtualHost www.aaaaa.co.jp>
ServerAdmin webadmin@aaaaa.co.jp
DocumentRoot /var/www/docs/www.aaaaa.co.jp/
ServerName www.aaaaa.co.jp
ErrorLog logs/www.aaaaa.co.jp-error_log
TransferLog logs/www.aaaaa.co.jp-access_log
</VirtualHost>

:
:

<VirtualHost www.ddddd.co.jp>
ServerAdmin webadmin@ddddd.co.jp
DocumentRoot /var/www/docs/www.ddddd.co.jp/
ServerName www.ddddd.co.jp
ErrorLog logs/www.ddddd.co.jp-error_log
TransferLog logs/www.ddddd.co.jp-access_log
</VirtualHost>
そして、/var/www/docs/www.aaaaa.co.jp/、…、 /var/www/docs/www.ddddd.co.jp/ にお客様のホームページ書類を置き ます。


[Up] [Next] [Previous]