Forçar HAProxy a pesquisar DNS para servidor back-end

13

Eu tenho haproxy 1.5.8, ele proxies alguns pedidos (com base no caminho) para terceiros sobre os quais não temos controle.

Como o IP do servidor back-end é resolvido uma vez na inicialização, ele quebra se o IP mudar.

Se existe uma solução alternativa para isso? No nginx, é possível declarar uma variável interna e armazená-la em cache por X segundos. Não encontrei uma solução semelhante para o HAProxy.

Bastien974
fonte

Respostas:

24

Com o recente lançamento do HAProxy 1.6, existe uma solução para o seu problema. Agora você pode definir resolvedores e associá-los ao seu back-end. A resolução de IP será feita em tempo de execução.

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 discutindo isso

Link para a documentação correspondente

mana
fonte
hmmm quando eu faço isso e começar a atualizar a página, eu acabar recebendo um 503 dentro de um minuto ou assim
Paulius Dragunas
Eu tinha que ter múltiplos "servidor" duplicado linhas discourse.haproxy.org/t/...
Jamshid
1

Infelizmente, parece que este ainda é um trabalho em andamento.

Você já pensou em usar um proxy nginx separado? Para que você encaminhe as solicitações desse back-end para uma instância nginx, que então resolve o DNS e encaminha a solicitação? Não é ideak, mas pode funcionar em um ambiente de tráfego mais baixo.

David Hulick
fonte
Sempre existe essa solução, mas esperando encontrar uma solução que a mantenha simples.
precisa saber é o seguinte