この技術は、インターネットのサービスプロバイダや、ホームページレンタル 会社等で使われています。例えば、www.service.co.jp というレン タル会社があるとします。従来の方法では、
のような URL によるホームページのレンタルしかできませんでしたが、マル チホーム(仮想ホスト)機能を使うことによって、以下のような URL によるホー ムページレンタルが可能となります。http://www.service.co.jp/client1/ http://www.service.co.jp/client2/
このようなアクセス方法を提供するには、HTTP/1.0 プロトコルの制限により、 異なるIPアドレスを必要とします。そのため、マルチホーム用サーバを提供す るホストは、複数のドメインを一つのホスト計算機に割り当てる、すなわち 一つのインタフェースに複数の IP アドレスを 割り当てる必要があります。http://www.client1.co.jp/ http://www.client2.co.jp/
上記の方法では、無駄なIPアドレスを使ってしまい、あまり好ましくありませ ん。Apache では、一つのアドレスで、対応できるように改造されています。 (IPベースではない仮想ホスト機能)
なお、HTTP/1.1 では、マルチホスト機能がサポートされます。
そして、サーバ側では、BSD/OS のように ifconfig -alias コマン ドが使用できるものは、
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
のように設定します。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 が使用できる場合は(パッチが必要 です)、次のように設定します。
Linux では、次のように設定します。ifconfig vif0 192.168.1.2 up arp -s 192.168.1.2pub ifconfig vif1 192.168.1.3 up arp -s 192.168.1.3 pub
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
named.boot ファイルを次のように設定します。
zone/aaaaa ファイルは、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
のように設定し、他ドメインでも同様に設定します。そして、 rev/192.168.1 ファイルは、@ SOA (......) NS ns.main.co.jp. MX 100 mail1.main.co.jp. MX 100 mail2.main.co.jp. www A 192.168.1.2
のように設定します。@ 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.
そして、/var/www/docs/www.aaaaa.co.jp/、…、 /var/www/docs/www.ddddd.co.jp/ にお客様のホームページ書類を置き ます。<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>