我遇到了使用DNS循环进行故障转移的站点的问题。
有两个networking服务器。 当我closures一个盒子的Apache,一切都很好。 当浏览器尝试去Apache的Web服务器closures,它会得到一个连接拒绝,它会自动尝试另一个。
但是,重新启动时,我遇到了问题。 当我重新启动服务器,而不是连接被拒绝,浏览器现在等待超时导致一个非常缓慢的网站,直到服务器恢复。
有没有办法设置networking(或CentOS),使得在重新启动期间,IP继续拒绝,而不是花费很长时间来超时?
作为一个特别的解决方法(只在没有负载均衡的情况下),你可以伴随服务器的重启,在其下一跳(交换机,路由器,防火墙)之一进行适当的configuration,
具体而言,第2步可能包含以下内容之一
也可能存在其他变体。 当然有一个重点: 不要把自己踢在脚上! 例如,
另外,我没有testing任何这些方法,我只是想出了他们,认为他们应该工作。
像Zen-Loadbalancer或HA-Proxy一样使用负载均衡软件。
在那里,你可以configuration一个健康检查,在你的Web服务器上打开或者打开一个文件,并且如果这个文件不可用,则将它们从Load-Balancing中移除。
DNS循环不是为这样的事情做的,因为你的DNS不知道服务器是否不可用。 DNS将请求交给每个ip。
只是为了解释:DNS循环不是为您使用它的目的而devise的。 它只是告诉DNS以交替的方式分发可用的IP地址; 在发生故障的服务器和DNS之间没有任何反馈(如果存在的话,由于DNS的devise方式,时间问题将会阻止它得到很大的帮助)。 因此,您可以使用DNS-Round-Robin进行负载平衡(以有限的方式),但不能用于故障转移。
看到这样的引述:“如果列表中某个地址的服务失败,DNS将继续发送该地址,客户端仍将尝试访问不可用的服务。” 来自http://en.wikipedia.org/wiki/Round-robin_DNS
您closuresnetworking服务器没有任何问题的原因可能是,您的浏览器粘贴到可用的networking服务器,可能是因为某些会话cookie等。 您应该尝试使用全新的会话多次closuresWeb服务器的实验,然后您将遇到与重新启动相同的问题。
除此之外,我会第二个答案已经给:负载均衡解决scheme将做你想要的。