« Previous (Home)     [カテゴリー:Apache ]

2005.09.05

1つのIPで2台のサーバを動かす・・・(Apache)

家でサーバを立てるときは、Dynamic DNSの仕組みを利用するのが経済的だし、頑張って固定IPを確保してもIPアドレスを一つ確保するのが良いところで、複数のIPアドレスを貰うと維持費も掛かるので経済的に余裕がないと踏ん切りがつかない。
筆者も固定IPを持っているが、1つのみである。
ところが、たとえば息子も自前のサーバを立てたいと言い出すと、IPは1つでも2台のサーバは立てられないものかと考える。
ネットで調べるとdelegateを使ってIP1つでも名前で振り分けられると書いてある。
しかし、Apacheのhttpd.confでVirtual Hostを設定することで可能で簡単である。
そこで、以下に1つのIPで2つのサーバを立てる方法を書くことにする。
筆者の自宅ではflets光でルターのローカルアドレスは192.168.1.1でサーバはローカルのIPアドレスは192.168.1.5を振ってある。
そしてルータで全てのポートナンバーで外部からくるパケットは192.168.1.5のサーバに向けている。
今回、ローカルのIPアドレス192.168.1.6を持つサーバを追加したが、Dynamic DNSを利用させてもらってuls.fam.cxのサーバ名とプロバイダから貰ったuls.flets.cds.ne.jpの名前の2つがあるので、uls.fam.cxを192.168.1.5のアクセスに使い、uls.flets.cds.ne.jpを192.168.1.6とすることにした。
(下図参照)
network.jpg
Apacheの設定ファイルであるhttpd.confの最後に以下を追加する。

NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin nakamura@uls.fam.cx
DocumentRoot /web/data
ServerName uls.flets.cds.ne.jp
ErrorLog /var/log/error_log
ProxyPass  /  http://192.168.1.6/
ProxyPassReverse  /  http://192.168.1.6/
</VirtualHost>

これだけである。
ブラウザでhttp://uls.fam.cx/でアクセスすると192.168.1.5のサーバにアクセスでき、http://uls.flets.cds.ne.jp/とすると192.168.1.6のサーバにアクセスできる。

« Previous