我们在办公室的服务器上托pipe一些网站。 我们有两个互联网连接,一个主要和一个备份连接(具有不同的IP地址范围)。 我们需要能够从我们的局域网之外检测到主要互联网连接失败。
我们使用特殊的DNS服务,如果主要地址离线,将切换DNSlogging指向我们的备份IP地址。 它检测我们的主要地址是否通过ping服务器或者在我们的端点加载了一个网页,如果失败了,它会把我们的DNS切换到从IP地址。
我们确实检查了我们的Web服务器上是否存在一个页面,但问题是当我们重新启动Web服务器的Windows更新时,它认为互联网连接已经断开,并切换到次要连接,从而导致问题。 一旦服务器重新启动,它会在几分钟后切换回来。
直到最近,我的程序是login到外部DNS并禁用故障切换,然后重新启动服务器,然后重新启用它。 这不是一个最佳的解决scheme,因为故障切换必须基于每个域进行设置,而且还有很多。
我想有一个总是在100%的时间内总是打开的设备的故障检查。 UPS上最好没有运动部件,所以永不停机。 我试图使用霍金打印服务器,它有一个基于Web的界面,但它似乎不可靠,因为它已经检测到互联网连接失败,当它没有。 最糟糕的情况是,我可以build立一个无风扇的电脑,可以从USB启动,只需运行一个精简版的unix版本的Web主机,服务一个页面。
是否有任何简单的,100%可靠的设备可以投入使用,可以ping通或提供可用的网页?
好吧,所以我原来的答案假定你正在谈论故障转移networking服务器。 你想要的是完全不同的。 感谢您更新您的问题。
我们刚刚在这里完成了我们用BGP完成的任务。 我们有两个提供者给我们每个BGP链接。 然后,我们有一个IP范围,每个提供商通过BGP进行广告。 当任一链路失败时,BGP负责路由networking。 这是互联网在链路断开时的工作方式。 您根本不需要DNS更改,它比您拥有的和完全自动化的更可靠。 这可能是你的select吗?
对不起,但这听起来像故障转移正在做你想要的。 如果重新启动服务器,则在服务器完全重新引导并启动服务之前不会提供任何内容。 如果你不想让它检查Web服务器,那么只需一个简单的ping就可以工作。 但是,当用户尝试访问您的网站时,这仍然不会很理想,因为即使可以Ping它,IIS也可能不会启动。
使用DNS进行故障转移永远不会是可靠的。 看起来你已经find了困难的方式。
其原因是,DNS条目caching在互联网和DNScaching,服务器可以select忽略你的TTL值,即使设置很低,说30秒。 如果你已经把它设置为5分钟,那么在事情恢复正常之前至less要等很久。 在任何情况下,这听起来像你的备份服务器没有按预期工作,或者它只是一个静态的网页,说该网站暂时closures?
有更好的解决scheme可用故障转移Web服务器的forms。 我不太了解Microsoft如何完全做到这一点,但我相信Microsoft Cluster Server是该产品的正确名称。 或者你可以把你的networking服务器切换到Linux。 单声道和模式单声道是可用的,如果您需要在Apache Web服务器的.NET支持。 这些都是免费的。 我不认为MS集群服务器便宜。
第三个选项可能是在你的networking中build立一个linux路由器。 然后把每分钟检查web服务器的脚本拼凑起来。 如果发生故障,脚本可以更改路由或redirect到静态页面或其他服务器。 你甚至可以使用iptablesredirect来做到这一点。 无论如何,只是有些想法,我知道这是一个古老的问题。
一些小型计算机,例如基于Gumstix Overo的微型计算机或者Rasberry Pi将会工作。 对于Web服务器,您可以使用Python内置的Web服务器和pipe理程序或其他Web服务器。
我有一个Gumstix跑了3个星期没有过热或宕机。