Назад | Перейти на главную страницу

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

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

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

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

В недавнем выпуске 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 обсуждает это

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

К сожалению, похоже, что это все еще работа в процессе.

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