
No momento, estamos realocando um aplicativo que usa contexto para selecionar "perfis" (definir propriedades do aplicativo e cadeia de conexão JDBC)
Por enquanto, a URL é deste tipo:https://www.foo.com/test/company/profil-name/ Então você é redirecionado parahttps://www.foo.com/test/company/profil-name/web/online Mas também há outras coisas, como contextos de API: https://www.foo.com/api/profile-name/
Eu sei que o aplicativo atual está usando Apache + haproxy no frontend e backend:
Web => apache => local haproxy => backend haproxy => application backend
Meu problema é que estou tentando reproduzir a mesma configuração aqui, mas o proxy não funciona bem (testo com um arquivo host modificado):
https://www.foo.com/test/company/profil-name/redireciona parahttps://www.foo.com/web/test/company/profil-name/online
É como se o contexto inicial fosse considerado uma string de opções pelo aplicativo.
Fiz algumas combinações na configuração haproxy/apache e quando uso uma configuração simples de proxy reverso sem seleção de contexto de perfis, está funcionando (exceto que tenho apenas um perfil...):
https://www.foo.com/web/online
Você já teve esse tipo de comportamento? Eu uso haproxy 1.8 e apache httpd 2.4.
Esta é a aparência da minha configuração do 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
Configuração do Apache:
ProxyRequests On
ProxyPreserveHost On
<Location /test/company/app1/>
ProxyPass http://localhost:80/
ProxyPassReverse http://localhost:80/
</Location>
Passei horas tentando ter uma configuração funcional, mas ainda não funciona. Espero que alguém possa me ajudar.
Obrigado,
Sebastião