有谁知道如何在反向代理模式下告诉 Apache 拦截或捕获来自后端服务器的 302(或 30x)响应并在内部重定向而不将 30x 响应发送回客户端?最终,响应重定向到的后端服务器将无法从外部访问(或未在 Apache conf 中列出)。
我的情况:
我有 web_server_A 和 web_server_B 监听端口 6666 和 7777。这些端口不能从外部访问,但可以从内部访问。
我最终可以改变 web_server_A 的行为,但不能改变 web_server_B 的行为。
Apache 正在侦听端口 80/443,可从外部访问并充当反向代理,将发送到 web_server_{A,B}.example.com 的请求发送到 web_server_{A,B}
客户端向 Apache 请求 web_server_A.example.com/foo。Apache 将请求代理到 web_server_A,它会做一些东西,然后将指向 web_server_B.example.com/bar/secret_token 的 HTTP/302 响应发送回 Apache。Apache 将 302 响应发送回客户端,然后客户端向 Apache 发送对 web_server_B.example.com/bar/secret_token 的 HTTP 请求。Apache 将请求代理到 web_server_B,它会回复一些东西(通常它会发回一些大文件)。
我的问题:
我不希望客户端知道 url web_server_B.example.com/bar/secret_token,最终我不希望 web_server_B 可以从外部访问。
web_server_A 可以向 web_server_B 发出请求,然后从 web_server_B 发回答案而不发出 302 回复。但是,来自 web_server_B 的答案可能需要一些时间,可能会很大,并且 web_server_A 不应该在任何请求上花费太多时间(它没有处理大文件的能力)。
所以我想了一个“302 陷阱”功能,如果存在的话会很好,但到目前为止,还没有在网络上提供任何关于如何做到这一点的资金。任何想法?