我怎样才能为我的网站创build一个“失败的鲸鱼”?

我有一个网站,我们负载均衡几台机器。 负载均衡器(Brocade ServerIron ADX)位于本地networking中。 我知道它有能力configuration一个“备份”IP地址作为“真实”使用,但它需要在本地networking上。 如果由于FW,LB或多服务器故障导致整个环境可能处于脱机状态,我该如何向用户提供“失败鲸鱼”和状态更新消息? 由于DNS无法提供加权的A-Record备份(如SRVlogging),我有什么select?

理想情况下,只要我的网站无法访问,解决scheme应该能够自动进入,并通知我的用户我们的响应团队正在处理这个问题。

Twitter的失败鲸似乎更复杂。 Twitter应用程序堆栈(堆栈 – Twitter基础结构中有很多层)被称为相当复杂。 Twitter拥有数千台机器,多年以各种语言编写的代码,十几种不同的风格,以及数百(如果不是数千)应用程序可以破解的地方。 您的需求(两台服务器和一个故障页面)要简单得多。

我只是碰巧看到了一个类似的function – 如果所有主要的Web服务器都失败,我想使用备份的Web服务器。 请注意,这只会在某些故障情况下有所帮助,如果负载均衡器的公共networking出现问题将无济于事。

ServerIron ADX服务器负载平衡指南 ,第2章:主服务器和备份服务器说:

主要和备份服务器

真正的服务器是基于您如何添加它的主服务器或备份服务器:

ServerIron ADX在对应用程序的客户端请求进行负载平衡时使用主服务器。 它是使用服务器real-name-or-ip命令或Web等效项添加的本地连接的服务器。

•只有在所有主服务器都不可用于请求的应用程序的情况下,ServerIron ADX才使用备份服务器。 它是使用server remote-name命令或Web等效的远程连接添加的

你得到一个网页devise师来产生一个看起来像你想要的文件。

然后,将负载均衡器configuration为为HTTP 500,502,503和504错误提供此文档。 你究竟是怎么做的, 检查你的文件。

一些负载平衡器只是TCP平衡器,它们转发TCP连接,在第七层中什么也不做。其他的可以充当完全的反向代理(例如nginx),这些都可以做你需要的。

从Brocade ServerIron ADX文档的快速扫描中,似乎无法提供有关HTTP请求的错误文档。 虽然它比你典型的“笨”的TCP转发器更聪明,但它可能不会做你想做的。

像nginx这样的反向代理就可以实现这个function,但是如果你设置了这个function,你也可以直接replace负载均衡器(因为nginx也可以执行HTTP / HTTPS负载均衡)。

Twitter的“失败鲸鱼”并不表示任何这些灾难性的失败,而且根本就不是微不足道的。 我能想到的最好的办法是为您的域名使用较低的DNS TTL,一个带有独立IP空间的额外互联网连接,只为失败的鲸鱼提供服务,某种监视工具可以在失败时更新您的Alogging。

现在,除非你打算频繁发生灾难性的失败,否则这将是过火的。 如果你打算频繁地让他们,你可能做错了:)

像CloudFront或Akamai这样的CDN可以用错误响应代替失败的鲸鱼,也可以在内部部署一个轻量级代理层来执行相同的操作。 如果您的networking连接中断,本地解决scheme将无法帮助您,只有CDN或远程托pipe的DNS服务器+ healthchecker才能处理该问题。