23

2つのApacheサーバーをセットアップしました。1 つはポート 80 に、もう 1 つはポート 8077 にあります。リバース プロキシ経由で 8077 のサーバー上のすべてを表示したいと考えています。現時点で私は持っています:

ProxyPreserveHost Off
ProxyHTMLInterp On
ProxyPass /translate/ http://www.example.com:8077/
ProxyPassReverse /translate/ http://www.example.com:8077/
ProxyHTMLURLMap / /translate/

これにより、サイトの最初のページにアクセスできますが、画像、CSS、およびその他のページへのリンクが機能しません。

たとえば、html の css は次のように表示されます。

/css/style.css

私が実際にそれをしたい場所

/translate/css/style.css

8077 サーバーからファイルを取得します。それを機能させるには、現在の設定で何ができますか?

4

1 に答える 1

36

わかりました、これは私がそれを機能させるためにやったことです

ProxyPass /translate/ http://www.example.com:8077/
ProxyPassReverse /translate/ http://www.example.com:8077/

ProxyHTMLURLMap http://www.example.com:8087 /translate/

<Location /translate/>
   ProxyPassReverse /
   SetOutputFilter  proxy-html
   ProxyHTMLURLMap http://www.example.com:8077 /translate/
   ProxyHTMLURLMap / /translate/
   ProxyHTMLURLMap  /translate/ /translate/
   RequestHeader    unset  Accept-Encoding
</Location>

これはうまくいくようです。ProxyHTMLURLMap http://www.example.com:8077 /translate/ 行は、一部のページが最終的に 8077 ポート サーバーから直接提供しようとする原因となった「リファラー」ベースの URL を変換するためにのみ必要でした。

于 2013-01-21T22:35:01.193 に答える