我有一个 Apache 反向代理服务器,它有两个平衡器成员 - 一个用于非安全,一个用于安全。我想使用原始协议将请求“反向”到防火墙内的机器。据我所知,如下行:
ProxyPassMatch (?i)^/mydir(.*)$ balancer://ags-lb-NS/mydir/$1
ProxyPassReverse /mydir balancer://ags-lb-NS/mydir
不要为原始请求协议留出空间。
或者也许我可以向标头添加一些可以在内部机器上检测到的内容。
答案1
无法弄清楚如何根据环境变量(例如 %{HTTPS})进行代理,但确实弄清楚了我可以添加自定义标头来在内部机器上运行的代码中查找:
RequestHeader append X-FORWARD-HTTPS %{HTTPS}e
<Proxy balancer://ags-lb>
# BalancerMember https://secureserver
BalancerMember https://server1
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</Proxy>
# ---------------------- Non-Secure loadbalancer pool
<Proxy balancer://ags-lb-NS>
# BalancerMember http://nonsecureserver
BalancerMember http://server2
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</Proxy>