Como excluir uma URL para o Apache Mod_proxy?

18

Temos dois servidores Apache como front-end e um servidor 4 tomcat como back-end configurado usando o módulo mod_proxy como balanceador de carga. Agora, queremos excluir uma única URL do tomcat do balanceador de carga mod_proxy. Existe alguma maneira ou regra para excluir?

Configuração do balanceador de proxy:

<Proxy balancer://backend-cluster1>
   BalancerMember http://10.0.0.1:8080 loadfactor=1 route=test1 retry=10
   BalancerMember http://10.0.0.2:8080 loadfactor=1 route=test2 retry=10
</Proxy>
    
por Mughil 25.06.2013 / 15:27

3 respostas

32

Você exclui os caminhos do mod_proxy com um ponto de exclamação (!) antes da sua declaração ProxyPass completa, a qual sua amostra está faltando - Seria algo como ProxyPass /path balancer://backend-cluster1 . Portanto, para excluir um caminho, adicione:

ProxyPass /my/excluded/path !

antes

ProxyPass /my balancer://backend-cluster1
    
por 25.06.2013 / 19:00
0

Além da resposta de Alastair McCormack: Se você usar <Location> , precisará colocar a exceção abaixo em vez de antes:

<Location /my/>
    ProxyPass balancer://backend-cluster1
</Location>

<Location /my/excluded/path/>
    ProxyPass !
</Location>
    
por 22.08.2018 / 16:58
-2

Você pode colocar uma reescrita acima das diretivas de proxy que fornecerão aos usuários um erro 404 quando tentarem acessar o URL que você deseja excluir. Você precisará habilitar o rewrite_module.

<Location ~ ^/urltoblock($|/)>
   RewriteEngine On 
   RewriteRule .* - [L,R=404]
</Location>
    
por 25.06.2013 / 18:49