一個のIPアドレスで複数のサーバを公開する方法(2001.3.26、2002.2.15更新)

 一つのIPアドレスしか無いが、www1.example.comとwww2.example.comの二つのhttp
サーバを立ち上げたい、当然DNSに*.example.comが設定されているもの、とします。
 また、ファイアーウォール・あるいはルータのフィルタには80番ポートに穴を空け
てあるものとします。(IPフォワードとか静的IPマスカレードという。)

1.httpサーバのヴァーチャルホスト機能を使って
 文字通り、仮想的なホストを一台のホスト内に構築し、あたかも複数のホストが
有るかのごとく振る舞わせる方法。(教科書によると少し違うらしい。)
利点:一台の物理ホストに複数のヴァーチャルホストを立ち上げ可能。
欠点:ドキュメントルートは同一マシンにある必要がある。ただし、LAN側でファイ
   ル共有機能等を利用すれば別マシンにあるディレクトリをドキュメントルート
   とできる。また異なるhttpサーバで80番ポートを共有できない。例:ファイル
   メーカWebコンパニオンとANHTTPの両方を80番ポートで公開することはできない。
   (例えば鷹の巣さんとこでANHTTPのバーチャルホストの動作テストしています。)
   (2001.10.21追記)

2.ポートで振り分ける
利点:ポート毎に異なるローカルIPアドレスへ外部からのアクセスを振り分け、それ
   ぞれの独立したHTTPサーバを利用できる。勿論、HTTPサービス以外のサービス
   も異なる(同じにもできる)マシンで実現可能。ポートベースなので異なる
   httpサーバも可能。
欠点:80番ポートで振り分けられるマシン以外では、www.example.com:8080の様にポ
   ート番号を指定してアクセスする必要がある。

補足:1、2の場合でも、特殊なフレームによってポート番号をちょっとだけ隠すこ
   とは可能です。
   下記フレームの転送先URLにfilemaker.example.com:591とかを指定し、
   www2.example.comのドキュメントルートにindex.htmlとして保存すれば、みか
   けはwww2.example.comになります。勿論、ファイアーウォールには591に穴を空
   け、DNSにfilemaker.example.com(*.example.comでも良い)が登録されている
   必要があります。

<HTML>
<HEAD></HEAD>
<FRAMESET ROWS="*,0" BORDER="0" FRAMEBORDER="0">
<FRAME SRC="転送先URL">
</FRAMESET>
</HTML>



3.ネームで振り分ける(?)
利点:まだ試していないので、可能だろうとしか言えないのですが、delegateという
   高機能なプロキシサーバソフトがあって、80番ポートに来たグローバル側から
   のアクセスをネームベースでローカルマシンに振り分けることができるらしい。
   この方法であれば、ローカル側の複数ホストをバーチャルでなく公開できるそ
   うです。(DELEGATE設定欠点:本格的に導入してないので詳しくはわかりません。
補足:delegateを走らせることが可能な資源が必要。ちなみに子羊ルータという
   機種は次世代では搭載する模様?


メモその6 ホームへ メモその8

このサイトの内容については各自の責任で行って下さい。
当方では何があっても一切責任を持てません。
ご意見・ご要望等お待ち申し上げます。 
E-mail:webmaster@raibo.com 
Copyright (c) 2001 a-k, All rights reserved.