Заставить HAProxy искать DNS для внутреннего сервера

14

У меня есть haproxy 1.5.8, он передает некоторые запросы (в зависимости от пути) третьей стороне, которую мы не можем контролировать.

Поскольку IP-адрес внутреннего сервера разрешается один раз при запуске, он прерывается при изменении IP-адреса.

Есть ли обходной путь для этого? В nginx можно объявить внутреннюю переменную и кэшировать ее в течение X секунд. Я не нашел аналогичного решения для HAProxy.

Bastien974
источник

Ответы:

25

С недавним выпуском HAProxy 1.6 есть решение вашей проблемы. Теперь вы можете определить распознаватели и связать их с вашим бэкэндом. Разрешение IP будет сделано во время выполнения.

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 обсуждает это

Ссылка на соответствующую документацию

мана
источник
хм, когда я делаю это и начинаю обновлять страницу, я получаю 503 в течение минуты или около того
Паулюс Драгунас
у меня должно было быть несколько повторяющихся «серверных» строк discourse.haproxy.org/t/…
jamshid
1

К сожалению, кажется, что это все еще в стадии разработки.

Вы рассматривали возможность использования отдельного прокси-сервера nginx? Так что вы перенаправляете запросы на этот бэкэнд в экземпляр nginx, который затем разрешает DNS и пересылает запрос? Не идеак, но может работать в условиях низкого трафика.

Дэвид Хулик
источник
Всегда есть такое решение, но мы надеемся найти решение, которое сделает его простым.
Bastien974