23

我已经设置了 2 个 apache 服务器。一个在端口 80 上,另一个在端口 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/ 行只需要翻译一些基于“引荐来源”的 url,这会导致某些页面最终尝试直接从 8077 端口服务器提供服务。

于 2013-01-21T22:35:01.193 回答