![]()
マルチホームサーバの作り方
NCSA httpd 1.5以降およびApacheでは、複数ドメインのホームページが1つのWWWサーバで提供できるマルチホームサーバを構築できます。この技術はインターネットのサービスプロバイダや、ホームページレンタル会社などで使われており、たとえばwww.service.comというレンタル会社があるとすれば、従来なら、このようなURLのホームページしか提供できませんでした。しかし、現在はマルチホーム(仮想ホスト)機能を使うことで、以下のようなURLのホームページ・レンタルも可能です。http://www.service.com/client1/ http://www.service.com/client2/
![]()
こうしたアクセス方法を提供する場合、HTTP/1.0プロトコルの制限により異なるIPアドレスを必要とします。したがって、マルチホーム用サーバを提供するホストは複数ドメインを1つのホスト計算機へ、つまり1つのインタフェースに複数のIPアドレスを割り当てることができなければなりません。http://www.client1.com/ http://www.client2.com/
![]()
ドメイン名とIPアドレスの割り振り
仮に1つのクラスCアドレス「192.168.1.0/255.255.255.0」、ここでは便宜上プライベートアドレスと呼びますが、それを所有している場合、ホストのprimaryアドレスへ「192.168.1.1」を割り振り、残りのIPアドレスは以下のように異なるドメイン・ホスト名を割り振るとします。
202.218.1.1 www.main.com ホームページ提供会社 202.218.1.2 www.aaaaaa.com お客様:AAAAAA会社 202.218.1.3 www.bbbbbb.com お客様:BBBBBB会社 202.218.1.4 www.cccccc.com お客様:CCCCCC会社 202.218.1.5 www.dddddd.com お客様:DDDDDD会社
そして、サーバ側でBSD/OSやLinuxのようにifconfig-aliasコマンドが使用できるものは、このように設定し、SunOS 4.xのようなvifが使用できる場合の設定は次のようになります。ただし、パッチが必要です。ifconfig ef0 inet 202.218.1.1 link1 ifconfig ef0 202.218.1.2 alias ifconfig ef0 202.218.1.3 alias ifconfig ef0 202.218.1.4 alias ifconfig ef0 202.218.1.5 alias
![]()
ifconfig vif0 202.218.1.2 up arp -s 202.218.1.2
pub ifconfig vif1 202.218.1.3 up arp -s 202.218.1.3 pub ![]()
DNSへの登録
ドメインをNIC(日本の場合JPNIC)に申請し、以下のとおりDNSを設定します。
named.bootファイルの設定
cache . root.cache primary 0.0.127.in-addr.arpa rev/local.rev primary localhost zone/localhost ; primary aaaaaa.com zone/aaaaaa primary bbbbbb.com zone/bbbbbb primary cccccc.com zone/cccccc primary dddddd.com zone/dddddd primary 1.168.192.in-addr.arpa rev/192.168.1
![]()
zone/aaaaaaの設定
以下、同じように残りのドメインを設定します。@ SOA (......) NS ns.main.com. MX 100 mail1.main.com. MX 100 mail2.main.com. www A 202.218.1.2
![]()
rev/202.218.1ファイルの設定
@ SOA (......) NS ns.main.com. 2 PTR www.aaaaaa.com. 3 PTR www.bbbbbb.com. 4 PTR www.cccccc.com. 5 PTR www.dddddd.com.
![]()
サーバソフトの設定
httpd.confファイルでホームページ提供ドメインに関する情報を記述します。
<VirtualHost www.aaaaaa.com> ServerAdmin webadmin@aaaaaa.com DocumentRoot /var/www/docs/www.aaaaaa.com/ ServerName www.aaaaaa.com ErrorLog logs/www.aaaaaa.com-error_log TransferLog logs/www.aaaaaa.com-access_log </VirtualHost> : : <VirtualHost www.dddddd.com> ServerAdmin webadmin@dddddd.com DocumentRoot /var/www/docs/www.dddddd.com/ ServerName www.dddddd.com ErrorLog logs/www.dddddd.com-error_log TransferLog logs/www.dddddd.com-access_log </VirtualHost>
![]()
そして、「/var/www/docs/www.aaaaaa.com/」〜「/var/www/docs/www.dddddd.com/」へ、各お客様のホームページ文書を置きます。