Proxypass 指令是否需要 ProxyPassReverse 指令?

Proxypass 指令是否需要 ProxyPassReverse 指令?

所有 ProxyPass 指令都需要 ProxyPassReverse 指令吗?

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

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

答案1

此指令允许 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/quuxApache 将其调整为http://example.com/mirror/foo/quux在将 HTTP 重定向响应转发给客户端之前。请注意,用于构建 URL 的主机名是根据 UseCanonicalName 指令的设置来选择的。

相关内容