Proxypass指令是否需要ProxyPassReverse指令?


20

是否所有ProxyPass指令都需要ProxyPassReverse指令?

ProxyPass / http://foo.example.com:8080/  
ProxyPassReverse / http://www.example.com/

我看到了这段代码,并且了解到所有进入的流量都foo.example.com被代理到foo.example.com:8080。第二行是做什么的?

Answers:


15

通过该指令,Apache可以在HTTP重定向响应上的Location,Content-Location和URI标头中调整URL

例如,假设本地服务器的地址为http://example.com/;然后

ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookieDomain backend.example.com public.example.com
ProxyPassReverseCookiePath / /mirror/foo/

不仅会导致对http://example.com/mirror/foo/bar的本地请求在内部转换为对http://backend.example.com/bar的代理请求(ProxyPass在此处提供的功能)。它也负责重定向服务器backend.example.com发送:当http://backend.example.com/bar是由他重定向到http://backend.example.com/quux阿帕奇调整这HTTP:/ /example.com/mirror/foo/quux,然后再将HTTP重定向响应转发给客户端。注意,用于构造URL的主机名是根据UseCanonicalName伪指令的设置选择的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.