我正在使用Apache ProxyPass将一些请求从我的服务器(1)传递到另一个(2)。这适用于大多数请求,但是当服务器2处理POST请求并发送重定向标头时,会直接传递给客户端,然后客户端在服务器1上应用重定向,从而获得404。
所以我想要的是服务器1(带有ProxyPass的服务器)遵循服务器2上的重定向,并将最终页面传递回客户端。
我确信这一定是一种非常常见的情况,但我似乎无法找到解决方案。我想象的类似于“follow_redirects”标志,就像你应用于curl客户端一样,但我没有找到类似的东西。也许我想要做的不是ProxyPass的目的吗?
有人能指出我在正确的方向吗?
谢谢, 克里斯
答案 0 :(得分:2)
查看ProxyPassReverse指令。有了这个设置,Apache可以拦截重定向并重写它们,以便客户端不会离开代理。这不会处理代理上的重定向,但它至少会使客户端将重定向的请求发送回您的服务器而不是离开您。
答案 1 :(得分:1)
我找到了Apache Traffic Server,这是一个由雅虎制作并提供给Apache基金会的反向代理。
Origin服务器通常会将重定向响应发送回浏览器 将它们重定向到不同的页面。例如,如果是原始服务器 重载,然后它可能会将浏览器重定向到较少负载 服务器。当移动到的网页时,源服务器也会重定向 不同的地点。当Traffic Server配置为反向时 代理,它必须从源服务器重定向,以便 浏览器被重定向到Traffic Server而不是其他来源 服务器
我还没有尝试过,但Debian,Ubuntu和CentOS都有软件包。