¿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.