
Eu configurei o haproxy e funciona bem, posso acessar páginas da web que ficam em servidores no backend.
A configuração é a seguinte:
Há um único servidor haproxy frontend que aponta para backend diferente dependendo da porta
- frontend:81 pontos para backend:8100
- frontend:82 pontos para backend:8200
Na página de front-end, http://frontend:82/
há links como http://frontend:82/foo
este, sempre que clico em um desses links, o haproxy se certifica de se conectar ao servidor de back-end adequado. Um desses links aponta para http://backend:8200/bar
(servidor back-end e porta diferente).
Se eu clicar nesse link, sou redirecionado para o servidor no back-end, e não para o haproxy do front-end. Existe alguma maneira de interceptar essas chamadas para os servidores backend?
Responder1
Quando o usuário clica no link http://backend:8200/bar
, a menos que o DNS do 'backend' esteja apontando para o seu haproxy, você não capturará a solicitação.
As portas provavelmente não são a melhor maneira de fazer isso.
Seria melhor ter um frontend no 80 e usar acls baseados em URL
POR EXEMPLO:
frontend http_frontend
bind *:80
acl path_foo path_beg /foo
acl path_barbar path_beg /bar
use_backend foo_backend if path_foo
use_backend bar_backend if path_bar
backend foo_backend
server backend:8200
backend bar_backend
server backend:8100
Dessa forma, você pode retirar todas as atribuições de portas dos links.