如何使Apache将某些URL传递给其他服务器

时间:2013-03-29 23:36:49

标签: apache reverse-proxy mod-proxy

我已经将大部分php网站复制到我的本地计算机上进行调试和开发。原始远程网站上有大量图像无法传输。相同的图像由同一台服务器上的两个不同的域名提供服务,因此我希望通过将first_domain.com映射到127.0.0.1中的/etc/hosts并配置Apache(最新,最好的版本)来实现来自/images/*/*

second_domain.com/images/*/*

配置/etc/hosts非常简单。但是我不知道在配置Apache时我做错了什么。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
#...
# Configure mod_proxy_html to understand HTML4/XHTML1
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>

conf/extra/proxy-html.conf中,除了默认值:

ProxyRequests Off
ProxyPass /properties/ http://newhawaiiproperties.com/properties/
<Location /properties/>
    ProxyPassReverse /
    ProxyHTMLEnable On
    ProxyHTMLURLMap http://newhawaiiproperties.com/properties/ /properties/
    ProxyHTMLURLMap / /properties/
</Location>

我应该将ProxyRequests Off更改为ProxyRequests On吗?

更新:我意识到我不需要更改HTML文件,它们都是jpgs所以我应该能够摆脱ProxyHTML...的东西。

1 个答案:

答案 0 :(得分:1)

我正在过度思考/过度配置它。以下工作。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

ProxyPass /foo http://second_domain.com/foo
ProxyPassReverse /foo http://second_domain.com/foo

不需要通配符或怪异的重写!它会将/foo/bar/x.jpg之类的内容发送到http://second_domain.com/foo/bar/x.jpg