同じサイトに異なるデータを持つ 2 台 (またはそれ以上) のサーバーを使用することは可能ですか?
たとえば、server1 には page1.html があり、server2 には page2.html があり、両方からアクセスできますwww.site.com
。これは可能ですか?
どうしてそれが可能だと思いますか?
そうですね、各 DNS は特定のサーバーを指しますが、NS1、NS2、NS3 などのいくつかのサーバーを指定できることがわかりました。
私がやろうとしていることは何ですか?
私は PHP をベースにした既存の Web サイトを持っており、その Web サイトを asp.net-mvc で拡張したいと考えています。現在、両方とも同じサーバーにインストールされており、ファイルは同じ仮想ディレクトリにあります。これらを 2 つの異なるサーバーに分割したいと考えています。
サーバーの詳細:
Windows Server 2008 R2 および Windows Server 2008。
追伸
誰かこの質問にタグを付け直してもらえませんか? 正しいタグが何なのか全く分かりません。 よろしくお願いします。
答え1
これを実現するには、レイヤー 7 ロード バランサ (または異なるデータ センター内の一連のロード バランサ) を使用し、特定の URL パターンの要求を適切なバックエンドに送信できます。
Varnish、Squid、Apache、Nginx、Lighttpdはどれもこれをある程度うまく処理できます。LVSはLinux用のソフトウェアロードバランサー(カーネル内)で、これを実行できます。http://www.linuxvirtualserver.org/ 対応できる市販品もございます。
DNS は、要求を適切なサーバーに希望どおりにルーティングしません。DNS は要求を最も近いロード バランサーにルーティングし (または、バランサーの IP をそれぞれ公開した場合はラウンドロビン)、バランサーはどのバックエンドからコンテンツを提供するかを判断します。
答え2
Microsoft NLB はこれを実現します。2 つの異なる IIS サーバーを設定し、ポート 80/443 で 50/50 に分割する NLB クラスターに配置し、各 Web サイトの異なるバージョンを各ノードの inetpub に配置します。FQDN を NLB IP アドレスを指すように構成すると、単一の URL に移動してアクセスできる 2 つのバージョンの Web サイトが配布されます。
ただし、これはアクセスするノードを選択できるわけではなく、他のすべてのリクエストが異なるサーバーに送信されることを保証していることに注意してください。
答え3
私は現在、Apache のリバース プロキシ モジュールを使用してこれを本番環境で実行しています。ProxyPass ディレクティブを使用すると、受信 URL に基づいて異なるバックエンド サーバーにリクエストを渡すことができるようになります。
フロントエンドの Apache サーバーを www.site.com でリッスンするように設定し、要求された URL に基づいて 2 つのバックエンド サーバー (server1 と server2) に要求を渡します。Apache リバース プロキシを Google で検索すると、これを行う方法に関する多数のハウツーが見つかります。