强制 HAProxy 为后端服务器查找 DNS

Bas*_*974 17 domain-name-system haproxy

我有 haproxy 1.5.8,它将一些请求(基于路径)代理给我们无法控制的第三方。

由于后端服务器的IP在启动时是一次性解析的,如果IP改变就会中断。

如果有解决方法吗?在 nginx 中,可以声明一个内部变量并将其缓存 X 秒。我没有为 HAProxy 找到类似的解决方案。

man*_*ana 27

最近发布的 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
Run Code Online (Sandbox Code Playgroud)

StackOverflow 讨论这个

链接到相应的文档


小智 1

不幸的是,这似乎仍在进行中。

您是否考虑过使用单独的 nginx 代理?这样您就可以将该后端的请求转发到 nginx 实例,然后由该实例进行 DNS 解析并转发请求?不太理想,但可以在流量较低的环境中工作。