use*_*171 4 failover timeout connection-refused
我遇到了使用 DNS 循环进行故障转移的站点的问题。
有两个网络服务器。当我在一个盒子上关闭 apache 时,一切都很好。当浏览器尝试在 apache 关闭的情况下访问网络服务器时,它会拒绝连接并自动尝试另一个连接。
但是,重新启动时,我遇到了问题。当我重新启动服务器时,而不是连接被拒绝,浏览器现在等待超时导致站点非常慢,直到服务器恢复。
有没有办法设置网络(或 CentOS),以便在重新启动期间,该 IP 继续拒绝而不是花费很长时间超时?
使用带有健康检查的 Loadbalancer 软件,例如Zen-Loadbalancer或HA-Proxy。
在那里你可以配置一个健康检查,它在你的网络服务器上 ping 或打开一个文件,并在文件不可用时将它们从负载平衡中删除。
DNS Round-robin 不是为这些事情而设计的,因为您的 DNS 不知道服务器是否可用。DNS 将请求交替发送给每个 ip。
小智 5
只是解释一下:DNS Round Robin 不是为您使用它的目的而设计的。它只是告诉 DNS 以交替方式分发可用的 IP 地址;发生故障的服务器和 DNS 之间没有反馈(如果有,由于 DNS 的设计方式,计时问题将使其无法提供很大帮助)。因此,您可以使用 DNS-Round-Robin 进行负载平衡(以有限的方式),但不能用于故障转移。
请参阅此引用:“如果列表中某个地址的服务失败,DNS 将继续分发该地址,客户端仍将尝试访问无法运行的服务。” 来自 http://en.wikipedia.org/wiki/Round-robin_DNS
您在关闭网络服务器时没有出现任何问题的原因可能是,您的浏览器坚持使用正常工作的网络服务器,可能是因为某些会话 cookie 或类似原因。您应该尝试多次关闭 Web 服务器,使用全新的会话进行实验 - 您应该会遇到与重新启动时相同的问题。
除此之外,我会支持已经给出的答案:负载均衡器解决方案可以满足您的需求。