haproxy: cómo interceptar enlaces que apuntan directamente a los servidores backend

haproxy: cómo interceptar enlaces que apuntan directamente a los servidores backend

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/fooeste, 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.

información relacionada