2009-07-17 7 views
5

逆プロキシモードで、バックエンドからの応答を302回(または30回)傍受またはトラップする方法を知っている人はいますか?クライアントに30倍の応答を返さずに内部的にリダイレクトしますか? 最終的に、応答がリダイレクトされるバックエンドサーバーは、外部からアクセスできない(またはApache confにはリストされていません)。リバースプロキシモードApacheの代行受信またはトラップ302のバックエンドサーバーからの応答とクライアントへの302応答の送信なしで内部的にリダイレクト


マイ状況:
私はweb_server_Aとweb_server_Bは、これらのポートは、外部からアクセスされないポート6666と7777をリッスンしていますが、内部からアクセス可能です。
web_server_Aの動作は最終的に変更できますが、web_server_Bの動作は変更できません。
Apacheが外部からアクセス可能なポート80/443、をリッスンし、リバースプロキシ送信要求は{A、B}

クライアントをweb_server_する{A、B} .example.comのをweb_server_にアドレスとして機能していますApacheにweb_server_A.example.com/fooを問い合わせます。 Apacheは要求をweb_server_Aに代行して何らかのものを作ってから、web_server_B.example.com/bar/secret_tokenを指すHTTP/302応答をApacheに返します。 Apacheは302レスポンスをクライアントに返送し、クライアントはweb_server_B.example.com/bar/secret_tokenのHTTPリクエストをApacheに送信します。 Apacheは要求をweb_server_Bに代理します。これは何かを返信します(通常は大きなファイルを送り返します)。


私の問題:
私は、クライアントがURL web_server_B.example.com/bar/secret_tokenについて知りたくない、そして最終的に私はweb_server_Bが外部からアクセス可能にしたくありません。

web_server_Aはweb_server_Bに要求を行い、302応答を出さずにweb_server_Bから返答を返すことができます。しかし、web_server_Bからの回答には時間がかかり、かなり大きくなる可能性があり、web_server_Aは大きなファイルを処理する能力を持たないリクエストに時間を費やすべきではありません。


だから私は、既存の場合はいいだろう「302トラッパー」機能について考え、これまでのところそれを行う方法については、ウェブ上で何に資金をしていません。何か案が?

+4

serverfault.comでサーバ設定に関する質問が多分うまくいくでしょう –

答えて

0

リバースプロキシとして、Apacheは「返信をブロックする」ことができません。それは検閲ではない。 あなたはこのようなものを自分で書くことができます。

0

ProxyPassReverseディレクティブを使用すると、web_server_Aはweb_server_Bによって送信されたLocationヘッダーを変更するので、クライアントは彼について知りません。

上流サーバーからのリダイレクトをトラップするには、ロケーションヘッダーを編集することもできます。たとえば、「ヘッダ未設定の場所」には、Apacheのデフォルトの30Xエラーページが表示されます。

関連する問題