Apache ProxyPass o ProxyPassMatch para excluir un archivo del proxy

8

Tengo un VirtualHost configurado para proxy todas las solicitudes a otro servidor que se ejecuta en el puerto 9000.

Lo que tengo :

ProxyPass / http://localhost:9000/
ProxyPassReverse / http://localhost:9000/

Lo que probé:

! ProxyPass /test.html http://localhost:9000/
ProxyPass /test.html ! http://localhost:9000/
ProxyPassMatch !^/(.*\.html)$ http://localhost:9000/$1 

Ninguno de los cuales funcionó ...

Me gustaría excluir un proxy o un conjunto de archivos de la representación, la documentación dice algo sobre "La directiva! Es útil en situaciones en las que no desea realizar una proxy inverso de un subdirectorio", pero no hay ejemplos por esa situación

Andrei
fuente

Respuestas:

13

Ok, lo descubrí, resulta que, obviamente, no hay necesidad de especificar el proxy para las rutas excluidas.

ProxyPass / somedir!

Funciona genial

Andrei
fuente
Hmm Esto es interesante porque si estaba usando AJP para vincular a Tomcat (para servir contenido JSP dinámico), entonces esta directiva podría permitirle, por ejemplo, excluir el directorio "/ images" en el servidor para que Tomcat sirva las imágenes en lugar de ¿¿¿Gato???
djangofan
Pues lo hace. No estoy seguro de entender tu pregunta.
Andrei
2
Tenga en cuenta que esto tiene que ir antes que las otras directivas de ProxyPass para tener efecto, ya que la primera coincidencia es la que se aplica.
Ryan C. Thompson