家で複数のWebサーバーを実行しています。各サーバーはルーターに接続されています。
サーバーAサーバーBサーバーC
私のIP(xx.xxx.xx.xx)ポート80がサーバーAを指しているため、現在使用できるサーバーは1つだけです。ただし、一部のドメインはサーバーAを指し、一部のドメインはBを指している、などです。
1つのIPアドレスで、各サーバーをどのようにポイントしますか?たとえば、my A(Host)と入力すると、すべてが自分のIPアドレスのみをポイントします。
混乱するようでしたら申し訳ありません。はっきりしない場合はお知らせください。
各サーバーはUbuntu Server 12.04.02を実行しており、Apacheを使用しています(それが役立つ場合)。私のルーターもネットギアで、私のISPはTime Warner Cableです。
Webサイトは、ブラウザから送信されるHost:
ヘッダーを通じて認識されます。ただし、ルーターは仮想ホスティングで使用されるHTTPデマングルに対応していないため、「one server」を「エンドポイント」として選択する必要があります(そして仮想サーバー/ DMZとしてアドレス指定するルーター)。
次に、その1台のマシンをそのドメインのWebサーバーおよび他のドメインのプロキシとして構成する(例: Apacheリバースプロキシ を使用)、または(多分)その1台のマシンにプロキシをインストールして使用する他のサーバーへのリクエストを多重化します。一部のドメインは、同じマシンでホストされている場合もあります。 nginx
はこの種の作業に適していますが、他のソフトウェアを使用することもできます(例:pound
)。
Webサーバーの構成をいじる必要がないため、2番目のソリューションの方が良いと思います。1つのプロキシがプロキシを行い、複数のWebサーバーがWebサービスを提供します。サーバーを追加したり、仮想ホストを移動したりする必要がある場合は、このアーキテクチャを維持する方が簡単です。
+-- virtual hosts 1..9 -- server B
|
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
|
+-- virtual hosts 24..99- server D
デコードされるリクエストによる追加のレイテンシtwice(プロキシによって1回、目的の受信者によって1回)は無視でき、プロキシ自体によって提供されるアクセラレーションによって相殺される以上です。