我在 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:...}
可以检查任意标题并据此做出决定。