バーチャルホストの運用

1台のマシンに複数のIPアドレスを割り当てたい場合があります。 例えば同じマシンで複数のドメインのWWWサーバを動かしたい場合 などがそうです。

このような場合に用いることができるのはバーチャルホストです。 どのようにしてこれを実現できるかをこのページで説明します.

複数のIPアドレスの割り当て

まず、同じポート番号(例えばWWWで使う80番ポート)は 各IPアドレスに1つずつしか使えないないので、複数のIP アドレスを同じマシンの同じインターフェースに割り当て, 仮想的に複数のマシンが存在するように見せかける必要があります。 このように、一枚のネットワークカードに複数のIPアドレスを割り当てた ホストをマルチホームホスト(multi homed host) (2つのアドレスの場合はデュアルホームホスト(dual homed host)) と呼ぶ場合があります。

このように同一のマシンに複数のIPアドレスを割り当てるには以下のように ifconfigを使ってaliasを設定します。 FreeBSDとLinuxでは設定方法が異なります.またLinuxでは古いバージョンの カーネルを使っている場合は設定できない場合があります。

# ifconfig fe0 192.168.0.80 netmask 255.255.255.0 alias
FreeBSDの場合
# ifconfig eth0:1 192.168.0.80 netmask 255.255.255.0
Linuxの場合

これで、192.168.0.80が使えるようになります. この設定を削除するには以下のコマンドを使います.

# ifconfig fe0 192.168.0.80 delete
FreeBSDの場合
# ifconfig eth0:1 down
Linuxの場合

以上の設定が終わったら、以下のコマンドを使って確認します。

# ifconfig -a

これで192.168.0.80の設定が正しくなされていればOKです。

Apacheの設定

apacheを使って,各IPアドレスで別のWWWサーバを設定するには httpd.confに以下の設定が必要です。

NameVirtualHost 192.168.0.80

<VirtualHost 192.168.0.80>
    ServerAdmin webmaster@fc-lab.com
    DocumentRoot /home/takeshi/public_html
    ServerName www2.fc-lab.com
    ErrorLog logs/www2.error_log
    CustomLog logs/www2.access_log common
</VirtualHost>

これによってhttp://192.168.0.80/に接続すると /home/takeshi/public_html/以下の内容にアクセスできるようになります。

FC Labのホームへ Copyright(c) 2001 Takeshi FUJIKI All rights reserved.