
Actualmente estamos reubicando una aplicación que usa contexto para seleccionar "perfiles" (definir las propiedades de la aplicación y la cadena de conexión JDBC)
Por ahora, la URL es de este tipo:https://www.foo.com/test/company/profil-name/ Luego eres redirigido ahttps://www.foo.com/test/company/profil-name/web/online Pero también hay otras cosas como contextos de API: https://www.foo.com/api/profile-name/
Sé que la aplicación actual usa Apache + haproxy en el frontend y el backend:
Web => apache => local haproxy => backend haproxy => application backend
Mi problema es que estoy intentando reproducir la misma configuración aquí, pero el proxy no funciona bien (lo pruebo con un archivo host modificado):
https://www.foo.com/test/company/profil-name/redirige ahttps://www.foo.com/web/test/company/profil-name/online
Es como si la aplicación tomara el contexto inicial como cadena de opción.
Hice alguna combinación en la configuración de haproxy/apache y cuando uso una configuración de proxy inverso simple sin selección de contexto de perfiles, funciona (excepto que solo tengo un perfil...):
https://www.foo.com/web/online
¿Ya tenías este tipo de comportamiento? Yo uso haproxy 1.8 y apache httpd 2.4.
Así es como se ve mi configuración de haproxy:
frontend default
bind *:80
capture request header X-Forwarded-For len 15
acl rest_url path /api
acl rest_url path_beg /api/
acl app1_profile path_beg /test/company/app1
acl app2_profile path_beg /test/company/app2
use_backend app3 if rest_url
use_backend app1 if app1_profile
use_backend app2 if app2_profile
backend app1
cookie SERVERID insert indirect nocache httponly
#http-request redirect location http://test.domain.com%[url,regsub(^/web/,/test/company/app1/web/,)]%[query] if { path_beg /web/ }
#http-request set-var(txn.path) path
#http-response redirect location https://test.domain.com/test/company/app1/var(txn.path) if ! { path_beg /test/ }
#reqirep ^Host:\ .*$ Host:https://test.domain.com/test/company/app1/
server app1_backend 192.168.10.15:80
Configuración de Apache:
ProxyRequests On
ProxyPreserveHost On
<Location /test/company/app1/>
ProxyPass http://localhost:80/
ProxyPassReverse http://localhost:80/
</Location>
He pasado horas intentando tener una configuración que funcione, pero todavía no funciona. Espero que alguien pueda ayudarme.
gracias
sebastian