我使用HaProxy将流量转发到具有dns名称而不是网络地址的后端服务器:
backend default-backend
server external somedomain.com:80问题是,有一种情况是无法解决的。在这种情况下,HaProxy说:
服务器默认-后端/外部正在下降以进行维护(DNS NX状态)。剩下0台活动服务器和0台备份服务器。0会话处于活动状态,0请求,0仍处于队列中。后端默认-后端没有可用的服务器!
我希望HaProxy再次检查DNS解析,并在目标DNS名称可再解析时开始转发流量。问题是,我必须声明resolvers部分和至少一个nameserver,它可以解决这样的地址:
resolvers rslvr
nameserver dns0 8.8.8.8:53如果我不想声明任何解析器怎么办?我只想让HaProxy检查DNS解析,就像在启动时一样。有可能吗?
如果我不使用解析器,后端就会停止工作,并且不会检查此域是否再次可用。当我在nameserver部分中没有任何resolvers时,也会发生同样的情况。
是否有任何方法可以省略显式nameserver声明,或者在启动时使用HaProxy使用的默认解析器?
发布于 2019-02-19 11:17:42
haproxy版本1.9为解析器部分引入了一个新参数,该参数消除了手动列出名称服务器的需要。
parse-resolv-conf有关更多信息,请参见他们的医生,但本质上这允许您替换
resolvers mydns
nameserver dns1 10.0.0.1:53
nameserver dns2 10.0.0.2:53
hold valid 10s使用
resolvers mydns
parse-resolv-conf
hold valid 10s假设您的resolv.conf (在没有解析器部分时由has读取)配置了10.0.0.1:53和10.0.0.2:53。
https://serverfault.com/questions/914996
复制相似问题