Apache 2 のリバース プロキシ ページで参照されるリソースのルートの場所を書き換えるにはどうすればよいでしょうか?

Apache 2 のリバース プロキシ ページで参照されるリソースのルートの場所を書き換えるにはどうすればよいでしょうか?

アプリケーションサーバーは次の場所にあります。http://foo.bar

リバースプロキシを使用して http:// wibble/foo 経由でアクセスする必要があります。

これは私が管理しましたが、http:// foo.bar には / から参照するものが存在します

例えば:

/images/blah.jpg

つまり、http:// wibble/images/blah.jpgではなく、

http://wibble/foo/images/blah.jpg

/ から参照されるものに /foo プレフィックスを挿入するにはどうすればよいでしょうか?

答え1

mod_proxy一度もないHTML を変更します。

書き換えられるのは、上で具体的に述べた HTTP 応答ヘッダーのみです。Apache は他の応答ヘッダーを書き換えたり、HTML ページ内の URL 参照を書き換えたりしません。つまり、プロキシされたコンテンツに絶対 URL 参照が含まれている場合、プロキシはバイパスされます。HTML 内を調べて URL 参照を書き換えるサードパーティ モジュールは、Nick Kew の mod_proxy_html です。

Apache 2.2 の mod は、以下のとおりです。

答え2

フロントエンド サーバーとして nginx を使用している場合は、HttpSubModule を使用して置換を実行できます。基本的に、nginx はリクエストをプロキシし、返されたテキストに対して置換を実行します。ただし、バックエンドで圧縮が行われている場合はこれを使用できないと思います (フロントエンド サーバーで圧縮が行われている場合は問題ないはずです)。

基本的には、Nginx -> Apache にプロキシ -> Nginx に戻る -> 置換を実行 -> 圧縮して提供する

Apache や他のサーバーにも同様のモジュールが存在すると思われます。

関連情報