2017-06-07 3 views
0

J'ai une configuration existante pour rediriger le trafic vers un autre service en fonction du chemin d'URL, et si aucun chemin correspond par défaut à une « principale » charge service équilibréhttpd directe basée sur en-tête HTTP

<Proxy balancer://main> 

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

ProxyPreserveHost on 

ProxyPassMatch "/server.txt" ! 

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


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

Cela fonctionne ! Maintenant, je souhaite étendre la fonctionnalité si la demande contient HTTP header environnement = dev, la demande doit être dirigée vers le serveur dev au lieu du serveur principal dans le cas où le chemin ne correspond pas à l'une des autres conditions

J'ai essayé d'ajouter ce juste au-dessus du «* » affaire, mais n'a pas fonctionné

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

Répondre

1

la configuration ci-dessus fonctionne, mais vous devez vous rappeler de mettre le RewriteEngine sur

RewriteEngine on