2011-06-17 10 views
1

私は、サーバーProxyPassを使用してサーバー(1)から別のサーバー(2)に要求を渡しています。これはほとんどのリクエストでうまくいきますが、サーバー2がPOSTリクエストを処理してリダイレクトヘッダーを送信すると、クライアントにリダイレクトされ、サーバー1でリダイレクトが適用され、404が取得されます。プロキシ・パス:サーバーのリダイレクトに従います

私は、サーバー1(ProxyPassのあるサーバー)がサーバー2のリダイレクトに続いて、最後のページをクライアントに戻すことをお勧めします。

これは非常に一般的なシナリオである必要がありますが、私は解決策を見つけることができないと確信しています。私は "follow_redirects"フラグのようなものを想像していますが、これはcurlクライアントに適用するのと似ていますが、そのようなものは見つかりませんでした。多分、私がしようとしているのはProxyPassの目的ではないでしょうか?

誰かが正しい方向に私を向けることができますか?

おかげで、 クリス

答えて

2

チェックアウトにProxyPassReverseディレクティブ。このセットを使用すると、Apacheはリダイレクトを代行受信し、クライアントがプロキシを離れないように書き換えます。これはプロキシのリダイレクトを処理しませんが、少なくともリダイレクトされた要求をクライアントからサーバーに送り返させることになります。

+0

ありがとうEmil。実際にはProxyPassReverseディレクティブが設定されていましたが、バックエンドサーバーは完全なロケーションリダイレクトを送信していないため、正しく解釈されませんでした。今それは動作します。乾杯 – Chris

1

私はApache Traffic Serverを見つけました。これはYahooが作成してApache Foundationに与えたリバースプロキシです。

this documentationから:

オリジンサーバは、多くの場合、バック別のページにそれらをリダイレクトするブラウザ への応答をリダイレクト送ります。たとえば、オリジンサーバー がオーバーロードされている場合は、ブラウザーを負荷の少ないサーバー にリダイレクトする可能性があります。オリジンサーバーは、異なる場所に移動したWebページが のときにリダイレクトされます。 Traffic Serverが逆 プロキシとして設定されている場合、 ブラウザがTraffic Serverにリダイレクトされ、別のオリジン サーバにリダイレクトされないように、オリジンサーバからのリダイレクトをreaddressする必要があります。

これはまだ試していませんが、Debian、Ubuntu、CentOS用のパッケージがあります。

関連する問題