httpd 直接基于 HTTP header

httpd direct based on HTTP header

我有一些现有的配置可以根据 URL 路径将流量重定向到不同的服务,如果没有匹配的路径默认为 "main" 负载平衡服务

<Proxy balancer://main>

        BalancerMember http://main-service01:8080
        BalancerMember http://main-service02:8080
</Proxy>

ProxyPreserveHost on

ProxyPassMatch "/server.txt" !

ProxyPassMatch "^/register/(.*)$"  http://register_service/
ProxyPassMatch "^/login/(.*)$"  http://login_service/
ProxyPassMatch "^/lookup/(.*)$"  http://lookup_service/


ProxyPassMatch ".*" balancer://main-service nofailover=Off maxattempts=3 timeout=5

这行得通! 现在我希望扩展功能,因此如果请求包含 HTTP header environment = dev,则在路径与其他条件之一不匹配的情况下,请求应定向到开发服务器而不是主服务器

我尝试将其添加到“.*”大小写上方,但没有成功

RewriteCond %{HTTP:environment} dev
RewriteRule (.*) http://dev:8080/ [P]

上面的配置确实有效,但你必须记得打开 RewriteEngine

RewriteEngine on