最近引起我注意的是,为主机名设置多个A记录不仅可以用于循环负载平衡,还可以用于自动故障转移。
所以我尝试测试它:
确实,浏览器会自动尝试使用其他服务器加载页面。这适用于Opera,Safari,IE和Firefox。只有Chrome浏览器无法尝试其他服务器。
但是,在使该服务器脱机几分钟并查看访问日志之后,我发现对其他服务器的请求数量并未显着增加。在3台服务器中有1台脱机的情况下,我预计对其余2台服务器中的每台的访问量将大致增加50%,但我只看到了7-10%。这仅意味着基于DNS的故障转移不适用于大多数浏览器/访问者,这与我刚刚测试的内容直接矛盾。
有谁知道基于DNS的Web浏览器故障转移的最新消息吗?有什么可能的原因为什么自动故障转移对我有效,但对大多数访问者却无效?
最佳答案
发生的情况是浏览器没有执行自动DNS故障转移。
如果您在一个域上有多个A记录,那么当您的名称服务器请求您在浏览器中键入的域的IP时,它将向SOA请求一个。可能是那些A记录中的任何一个。然后它通过。
如果名称服务器无法正常工作,有些名称服务器“足够聪明”,可以请求新的A记录,有些则不能。因此,如果您设置了多个A记录,那么您将设置伪冗余故障转移,但仅适用于拥有“智能”名称服务器的人员。其余的人会掷一个骰子,如果他们能获得IP,那么它就可以了,如果还不错,那么它将无法像在Chrome中那样为您加载。
如果要对此进行专门测试,则可以使用Windows中的主机文件C:\Windows\system32\drivers\etc\hosts
和Linux中的/etc/hosts
来指定要与哪个域一起使用的IP,以查看是否获得了真正的故障转移-实际将遇到的问题是指网络上的DNS服务器将根据其TTL缓存您的域名解析。因此,如果/当您遇到真正的失败时,该IP仍将需要解析,否则将被移植到另一个名称服务器。
关于dns - 使用DNS通过多个A记录进行故障转移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5319649/