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


14

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

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

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

Ответы:


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.