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

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

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

由于后端服务器的IP在启动时就解析一次,所以IP一旦改变就会中断。

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

答案1

随着 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 讨论此问题

链接至相应文档

答案2

不幸的是,这似乎仍然是工作正在进行中。

您是否考虑过使用单独的 nginx 代理?这样您就可以将该后端的请求转发到 nginx 实例,然后该实例进行 DNS 解析并转发请求?这不是一个好主意,但在流量较低的环境中可能会有效。

相关内容