Forza HAProxy a cercare DNS per il server back-end


13

Ho haproxy 1.5.8, inoltra alcune richieste (basate sul percorso) a una terza parte su cui non abbiamo alcun controllo.

Poiché l'IP del server back-end viene risolto una volta all'avvio, si interrompe se cambia l'IP.

Se esiste una soluzione alternativa per quello? In nginx è possibile dichiarare una variabile interna e averla memorizzata nella cache per X secondi. Non ho trovato una soluzione simile per HAProxy.

Risposte:


24

Con la recente versione di HAProxy 1.6 esiste una soluzione al tuo problema. Ora puoi definire i resolver e associarli al tuo backend. La risoluzione IP verrà quindi eseguita in fase di esecuzione.

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 ne parla

Link alla documentazione corrispondente


hmmm quando faccio questo e comincio ad aggiornare la pagina, finisco per ottenere un 503 in circa un minuto
Paulius Dragunas

ho dovuto avere più linee "server" duplicate discourse.haproxy.org/t/…
jamshid

1

Sfortunatamente, sembra che questo sia ancora un lavoro in corso.

Hai preso in considerazione l'utilizzo di un proxy nginx separato? In modo che inoltri le richieste per quel back-end a un'istanza nginx, che quindi risolve il DNS e inoltra la richiesta? Non ideak, ma può funzionare in un ambiente a traffico ridotto.


C'è sempre quella soluzione, ma sperando di trovare una soluzione che la renderebbe semplice.
Bastien974,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.