¿Cómo excluir una URL para Apache Mod_proxy?


23

Tenemos dos servidores Apache como front-end y 4 servidores tomcat como back-end configurados usando el módulo mod_proxy como balanceador de carga. Ahora, queremos excluir una única URL de Tomcat del equilibrador de carga mod_proxy. ¿Hay alguna forma o regla para excluir?

Configuración del equilibrador 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>

Respuestas:


39

Excluye las rutas de mod_proxy con un signo de exclamación (!) Antes de su declaración completa de ProxyPass, que falta en su muestra: se vería algo así ProxyPass /path balancer://backend-cluster1. Por lo tanto, para excluir una ruta, agregue:

ProxyPass /my/excluded/path !

antes de

ProxyPass /my balancer://backend-cluster1

Pero la url para tener acceso detrás del proxyBalancer
Mughil

Gracias fuzzyfelt, estoy preguntando cómo excluir la url si configuramos el equilibrador proxy. He incluido la configuración de proxy en la pregunta
Mughil

1
Ver respuesta actualizada. Agregue una exclusión antes de definir qué ruta va a proxypass.
Alastair McCormack

2
El uso de esta respuesta funcionó muy bien para permitir que LetsEncrypt ingrese a la ubicación de carpeta predeterminada bien conocida para un host virtual, cuando se usa ProxyPass para mostrar un servidor de chat allí. Agregue antes de las otras directivas: ProxyPass /.well-known!
Profesor Falken

2

Además de la respuesta de Alastair McCormack: si usa <Location>, debe poner la excepción a continuación en lugar de antes:

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

<Location /my/excluded/path/>
    ProxyPass !
</Location>

-2

Podrías reescribir las directivas de proxy que darán a los usuarios un error 404 cuando intenten acceder a la url que deseas excluir. Deberá habilitar rewrite_module.

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

No dijo nada sobre querer un error 404.
user207421
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.