1

我正在使用 Apache ProxyPass 将一些请求从我的服务器 (1) 传递到另一个 (2)。这对大多数请求都适用,但是当服务器 2 处理 POST 请求并发送重定向标头时,它会直接传递给客户端,然后客户端在服务器 1 上应用重定向并因此得到 404。

所以我想要的是服务器 1(具有 ProxyPass 的服务器)遵循服务器 2 上的重定向并将最终页面传递回客户端。

我确信这一定是一个非常常见的场景,但我似乎找不到解决方案。我在想像“follow_redirects”标志之类的东西,类似于您应用于 curl 客户端的东西,但我还没有找到类似的东西。也许我想做的不是 ProxyPass 的目的?

有人可以在这里指出我正确的方向吗?

谢谢,克里斯

4

2 回答 2

2

查看 ProxyPassReverse 指令。有了这个设置,Apache 可以拦截重定向并重写它们,这样客户端就不会离开代理。这不会处理代理上的重定向,但它至少会使客户端将重定向的请求发送回您的服务器,而不是离开您。

于 2011-06-17T12:24:59.347 回答
1

我找到了Apache Traffic Server,它是由 Yahoo 制作并提供给 Apache 基金会的反向代理。

从此文档

源服务器经常将重定向响应发送回浏览器,将它们重定向到不同的页面。例如,如果源服务器过载,则它可能会将浏览器重定向到负载较少的服务器。当网页移动到不同的位置时,源服务器也会重定向。当 Traffic Server 配置为反向代理时,它必须重新寻址来自源服务器的重定向,以便浏览器重定向到 Traffic Server 而不是另一个源服务器。

我还没有尝试过,但是有适用于 Debian、Ubuntu 和 CentOS 的软件包。

于 2012-06-22T11:50:56.150 回答