
Configuré haproxy y funciona bien, puedo acceder a páginas web que se encuentran en servidores en el backend.
La configuración es la siguiente:
Hay un único servidor frontend haproxy que apunta a un backend diferente según el puerto.
- frontend: 81 puntos hasta backend: 8100
- frontend: 82 puntos al backend: 8200
En la página web frontend http://frontend:82/
hay enlaces como http://frontend:82/foo
este, cada vez que hago clic en uno de estos enlaces, haproxy se asegura de conectarse al servidor backend adecuado. Uno de estos enlaces apunta a http://backend:8200/bar
(servidor backend y puerto diferente).
Si hago clic en ese enlace, me redirigen al servidor en el backend en lugar del haproxy del frontend. ¿Hay alguna forma de interceptar esas llamadas a los servidores backend?
Respuesta1
Cuando el usuario hace clic en el enlace http://backend:8200/bar
, a menos que el dns para 'backend' apunte a su haproxy, no captará la solicitud.
Los puertos probablemente no sean la mejor manera de hacer esto.
Sería mejor tener una interfaz en 80 y usar ACL basadas en la URL
P.EJ:
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
De esa manera puedes eliminar todas las asignaciones de puertos de los enlaces.