2009 年 7 月 Authorize.Net 的网站因当地火灾而中断。如果您在那段时间访问他们的网站,则会收到通知或重定向以查看他们 Twitter 帐户上的状态更新。这似乎是一个很好的解决方案。
这让我思考。对于我管理的网站,在他们当前的设置中,如果我的主机完全失去互联网连接,用户会在他们的浏览器中看到“找不到服务器”错误。我不想让访客认为该公司已不再营业。我希望访问者看到某种“计划外中断”页面。
目前我必须:
- 通知站点已关闭(IP 监控)
- 更新域名服务器的 DNS 记录以指向另一台主机(希望已经设置)
- 等待新的 DNS 记录传播(25 分钟 - 48 小时)
这似乎是一个可怕的解决方案。我知道必须有更好的方法来做到这一点。
问题#1:有什么办法可以避免这种情况?
我的一个想法是让名称服务器 1 和 2 指向物理上位于网站托管位置的名称服务器。并让名称服务器 3 和 4 指向可以查看“计划外中断”页面的另一台主机。
问题 #2:这个解决方案会起作用吗?
问题 #3:我可以依赖按顺序 (1,2,3,4) 查询的名称服务器吗?
问题#4:这是一个可怕的想法还是不赞成?
您在“目前我必须”下的假设是合理的 - 请注意 DNS 记录传播时间在您的名称服务器中的 SOA 记录中控制 - 您可以缩短它(查看任何重要站点的记录,您会看到它们通常是短 TTL)
但是,您的解决方案不起作用,因为没有订购 DNS 服务器。没有 1,2,3,4。
我过去为大型网站处理此问题的一种方法与您所描述的类似 - 使用故障转移组件。主数据中心的 DNS 服务器,辅助热备用数据中心的 DNS 服务器,当主数据中心发生故障时,更新 DNS 以将 WWW 指向辅助数据中心。有商业产品可以自动处理这个问题(BigIP 3DNS,哈哈),但编写脚本并不难。
您可以以低廉的价格做一些非常相似的事情。
获取便宜的 VPS 并将其配置为您的域的辅助域名服务器,并与您的注册商更新您的记录,以确保每个人都知道该域名服务器。
在您的新 DNS 服务器上托管站点中断页面。
调整 DNS SOA 记录中的 TTL/重试/刷新数字以对应所需的故障转移窗口。
如果您的主站点发生故障,请手动更新您的 DNS...(或自动更新,如果您可以可靠地检测到故障并编写脚本...)
我相信其他人会对您可以处理此问题的(许多)方式提出一些建议。
看看AutoFailover.com
从他们的产品中剪下:
自动故障转移
TZO-HA 的支柱和高可用性选项的基础是保持极低缓存时间的独特能力。这允许近乎实时的流量重定向。
当 TZO-HA 检测到故障时,它会自动更新您的域的 DNS 记录,以便将服务器请求发送到您的备用服务器或服务器集群的 IP 地址。
前所未有的故障转移时间
重定向服务器请求的最长时间为 2-1/2 分钟,包括故障检测、DNS 记录更改以及通过其他 DNS 服务器的 DNS 传播时间。通常,这一切都发生在 1 分钟内。竞争产品只能提供 10 到 30 分钟或更长时间的时间范围。TZO-HA 还包括多种故障转移模式。
通过 DNS 这样做是一个可怕的想法。您的客户不仅要花很长时间才能得到您的 IP 已更改的提示,而且他们会缓存您已关闭,即使在您恢复后也是如此。
大家伙所做的是有第二个站点可用(托管“我们已关闭”页面,或者可能只是站点的另一个副本),并让一些路由器在他们面前执行 BGP。如果一个站点出现故障,数据包会神奇地转到另一个站点。当它恢复时,它具有优先权,然后就可以了。
这太贵了。你可能不需要它。如果你这样做了,那么......花点钱:)
另一种选择是从 CDN 托管您的主页(可能不会关闭)。如果您的网站被水洗,在您进行修复时将它们翻转到“嘿,情况很糟糕,但它们会变得更好”页面。