apache - 反向代理模式Apache拦截或捕获来自后端服务器的302响应,并在内部重定向,而无需将302响应发送回客户端

标签 apache redirect reverse-proxy http-status-code-302

有谁知道如何在反向代理模式下告诉Apache拦截或捕获来自后端服务器的302(或30x)响应,并在内部重定向而不将30x响应发送回客户端?
最终,将无法从外部访问响应重定向到的后端服务器(或未在Apache conf中列出)。

我的情况:
我在端口6666和7777上监听了web_server_A和web_server_B。这些端口不能从外部访问,但可以从内部访问。

我最终可以更改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陷阱”功能,如果该功能存在的话会很不错,但是到目前为止,它还没有在网络上投入任何资金来实现该功能。任何想法?

最佳答案

作为反向代理,Apache将无法“阻止答复”。这不是审查员。
不过,您可以自己编写类似的内容。

关于apache - 反向代理模式Apache拦截或捕获来自后端服务器的302响应,并在内部重定向,而无需将302响应发送回客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1144286/

相关文章:

java - 线程 "main"org.apache.axis2.wsdl.codegen.CodeGenerationException : Invalid WSDL? 中的异常

php - UTF-8贯穿始终

linux - apache requestheader 环境变量

Docker-compose 与 nginx 反向、一个网站和一个 Restful api?

apache - 重定向到域的不同 Apache 服务器,但保持 URL 不变

web-services - 如何为现有本地群集配置和启用 Azure Service Fabric 反向代理?

php - 从另一个类内部调用类函数

javascript - 如何使用 Maxmind Geoip2 Javascript 根据国家/地区重定向流量

apache - 从 HTTP 重定向到 HTTPS 但不用于子域

ssl - 在 Microsoft IIS 上将 "HTTPS"重定向到 "HTTP"