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
我有一些现有的配置可以根据 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