Forcer HAProxy à rechercher DNS pour le serveur principal

14

J'ai haproxy 1.5.8, il procède à des requêtes (basées sur le chemin d'accès) à 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.

Bastien974
la source

Réponses:

25

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

mana
la source
hmmm quand je fais cela et commence à rafraîchir la page, je
finis
je devais avoir plusieurs lignes "serveur" en double discourse.haproxy.org/t/…
jamshid
1

Malheureusement, il semble que ce soit encore 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.

David Hulick
la source
Il y a toujours cette solution, mais en espérant trouver une solution qui resterait simple.
Bastien974