Forzar a HAProxy a buscar DNS para el servidor de fondo

13

Tengo haproxy 1.5.8, representa algunas solicitudes (basadas en la ruta) a un tercero sobre el que no tenemos control.

Dado que la IP del servidor de fondo se resuelve una vez al inicio, se rompe si la IP cambia.

Si hay una solución para eso? En nginx es posible declarar una variable interna y almacenarla en caché durante X segundos. No encontré una solución similar para HAProxy.

Bastien974
fuente

Respuestas:

24

Con el lanzamiento reciente de HAProxy 1.6 hay una solución a su problema. Ahora puede definir resolvers y asociarlos a su backend. La resolución de IP se realizará en tiempo de ejecución.

resolvers dns
  nameserver public-0  xx.xx.xx.xx:53
  hold valid 1s

frontend http
  bind *:8000
  default_backend site-backend

backend site-backend
  balance leastconn
  server site sub.example.com:80 resolvers dns check inter 1000

StackOverflow discutiendo esto

Enlace a la documentación correspondiente

mana
fuente
hmmm cuando hago esto y empiezo a actualizar la página, termino obteniendo un 503 en un minuto más o menos
Paulius Dragunas
Yo tenía que tener múltiples "servidor" duplicado líneas discourse.haproxy.org/t/...~~V~~plural~~3rd
Jamshid
1

Desafortunadamente, parece que esto todavía es un trabajo en progreso.

¿Has considerado usar un proxy nginx separado? Para que reenvíe las solicitudes de ese backend a una instancia nginx, ¿qué resolución DNS y reenvía la solicitud? No es ideak, pero puede funcionar en un entorno de bajo tráfico.

David Hulick
fuente
Siempre existe esa solución, pero con la esperanza de encontrar una solución que lo mantenga simple.
Bastien974