基于任意标头的 Apache 反向代理逻辑

基于任意标头的 Apache 反向代理逻辑

我在 natting fw 上运行了 apache,它可以进行身份​​验证、反向代理,并为后端的 2 个 webapps 提供 SSL 包装器。它适用于虚拟主机,并根据请求的顶级目录进行代理,例如https://example.com/app1/ <-> http://app1/app1/。(见图 1)

我想找到一种方法,根据请求中设置的任意标头将请求代理回 Web 服务,例如,如果设置了标头 web_service:coolwebservice,它将代理回 Webservice:8000。这可能吗?

图 1 [Apache:example.com:443 / FW / NAT]
                          |
       ┌------------------┬------------------┐
       | | |
       变压变流
[应用程序1:80 /应用程序1/][应用程序2:8080 /应用程序2/][web_service:8000]     

答案1

是的,使用 mod_rewrite 绝对可以实现这一点,下面的方法应该可以达到目的:

RewriteCond %{HTTP:web-service} coolwebservice
RewriteRule ^/(.*) http://web_service:8000/$1 [P,L]

%{HTTP:...}可以检查任意标题并据此做出决定。

相关内容