gente, Estamos tratando de configurar Apache proxy inverso para el siguiente escenario:ProxyPassMatch con ProxyPassReverse
- Las solicitudes entrantes toman la forma
http://foo.com/APP/v1/main.html
- Para algunos servidores de la URL hará referencia a una versión diferencia, por ejemplo,
http://foo.com/APP/v2/main.html
- Un equilibrador de carga en sentido ascendente (HAProxy) enviará la solicitud al servidor correcto que tendrá un proxy inverso Apache2 al frente de un servidor JBoss.
- Cuando la solicitud se presenta en Apache 2 que tendrá como ruta de solicitud
/APP/v1/main.html
- Queremos que proxy (inversa) a
http://localhost:8080/AppContext/main.html
, independientemente del fragmento de la versión en la URL (v1, v2, etc.).
He estado tratando de hacerlo de esta manera:
ProxyPassMatch ^/.*?/APP.*?/(.*)$ http://localhost:8080/AppContext/$1
ProxyPassReverse /APP http://localhost:8080/AppContext
Mis preguntas son:
- ¿Es mi uso de
ProxyPassMatch
correcta? - Mi
ProxyPassReverse
es "estático". ¿Cómo lo hago consciente de las cosas potencialmente variables después de/APP
?
Gracias por cualquier idea.
-Raj
Gracias Jon por la pronta respuesta. Estamos tratando de mantener nuestra configuración de Apache libre de entradas específicas de la versión para tener una plantilla homogénea que se pueda desplegar libremente en el clúster. Parece que la cosa ProxyPassReverse no se puede realizar de manera confiable. ¿Sugerirías lograr esto a través de algún tipo de módulo de reescritura? – Raj
@Raj Reescribir no va a ayudar, porque esto es en la otra dirección. El servidor de aplicaciones intenta redirigir una solicitud, no sabe nada sobre la URL real que se está utilizando para acceder a ella, por lo que solo dice: "Vaya a http: // localhost: 8080/AppContext/something", que el navegador devolverá un 404 porque la computadora en la que está el navegador no tiene un servidor de aplicaciones ejecutándose en el puerto localhost 8080 –