web-dev-qa-db-fra.com

Forcer HAProxy à rechercher DNS pour le serveur principal

J'ai haproxy 1.5.8, il procède à des requêtes (basées sur le chemin) à un tiers sur lequel nous n'avons aucun contrôle.

Étant donné que l'IP du serveur principal est résolu une fois au démarrage, il se casse si l'IP change.

S'il y a une solution pour cela? Dans nginx, il est possible de déclarer une variable interne et de la mettre en cache pendant X secondes. Je n'ai pas trouvé de solution similaire pour HAProxy.

14
Bastien974

Avec la version récente de HAProxy 1.6, il existe une solution à votre problème. Vous pouvez maintenant définir des résolveurs et les associer à votre backend. La résolution IP sera alors effectuée lors de l'exécution.

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 en discute

Lien vers la documentation correspondante

25
mana

Malheureusement, il semble que ce soit toujours un travail en cours.

Avez-vous envisagé d'utiliser un proxy nginx distinct? Pour que vous transmettiez les demandes de ce backend à une instance nginx, qui effectue ensuite la résolution DNS et transfère la demande? Pas ideak, mais peut fonctionner dans un environnement à faible trafic.

1
David Hulick