サーバーが複数のデータセンターに分散しており、それぞれに異なるファイルが保存されています。ユーザーが単一のドメインを介してすべてのサーバー上のファイルにアクセスできるようにし、個々のサーバーがファイルをユーザーに直接返すようにしたいと考えています。
以下に簡単な例を示します。
1) ユーザーのブラウザーがhttp://www.example.com/files/file1.zip
を要求します。
2) 要求は、example.com の DNS A レコードに基づいてサーバー A に送信されます。
3) サーバー A はリクエストを分析し、/files/file1.zip がサーバー B に保存されていることを突き止めます。
4) サーバー A はリクエストをサーバー B に転送します
。 A.
注: ステップ 4 と 5 はユーザーに対して透過的である必要があり、単一ドメインの要件に違反するため、ユーザーにリダイレクトを送信することはできません。
私の調査によると、達成したいのは「Direct Server Return」と呼ばれ、負荷分散のための一般的なセットアップです。ハーフ リバース プロキシと呼ばれることもあります。
ステップ 4 では、MAC アドレス変換を実行してから、要求をネットワークに戻す必要があるように思われます。サーバーのネットワーク外にあるサーバーには、トンネリングが必要になります。
手順 5 では、ロード バランシング セットアップの実サーバーに従って、サーバー B を構成する必要があります。つまり、サーバー B はループバック インターフェイスでサーバー A の IP アドレスを持つ必要があり、その IP アドレスに対する ARP 要求に応答しないようにする必要があります。
私の問題は、実際にステップ4を達成する方法ですか?
レイヤー 4 で単純な負荷分散を行うためにこれを実行できるハードウェアとソフトウェアをたくさん見つけましたが、これらのソリューションは不足しており、私が必要とする種類のカスタム ルーティングを処理できません。独自のソリューションを展開する必要があるようです。
理想的には、Web サーバー レベル、つまり PHP または C#/ASP.net でルーティング/転送を行いたいと考えています。ただし、Apache や IIS などの下位レベル、またはさらに下位レベル、つまりすべての前にカスタム プロキシ サービスを配置することにはオープンです。