如何为我的网站创建“失败鲸鱼”?

Eri*_*ken 3 domain-name-system disaster-recovery high-availability load-balancing

我有一个网站,我们可以在几台机器上进行负载平衡。负载平衡器(Brocade ServerIron ADX)位于本地网络上。我知道它能够配置一个“备份”IP 地址以用作“真实”IP 地址,但它需要在本地网络上。当我的整个环境可能由于 FW、LB 或多服务器故障而脱机时,如何向我的用户提供“失败鲸鱼”和状态更新消息?由于 DNS 无法提供加权 A-Record 备份(如 SRV 记录),我有哪些选择?

理想情况下,解决方案应该能够在我的网站变得无法访问时自动介入,并通知我的用户我们的响应团队正在解决问题。

Ste*_*ski 7

Twitter 的失败鲸鱼比看起来更复杂。众所周知,Twitter 应用程序堆栈(Stacks——Twitter 基础设施中有许多层)非常复杂。Twitter 拥有数千台机器、用各种语言编写的多年代码、十几种不同风格的胶水,以及数百(如果不是数千)个应用程序可能会崩溃的地方。您的要求(两台服务器和一个故障页面)要简单得多。

我碰巧正在查看一个类似的功能——如果所有主要网络服务器都出现故障,我想使用备份网络服务器。请注意,这只会在某些故障情况下有所帮助,如果负载均衡器的公共网络出现问题,则无济于事。

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

主服务器和备份服务器

根据您添加的方式,真实服务器是主服务器或备份服务器:

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

• 只有当所有主服务器对于请求的应用程序都不可用时,ServerIron ADX 才使用备份服务器。它是使用服务器远程名称命令或 Web 等效命令远程附加添加的


Mic*_*ton 6

你让一个网页设计师来制作一个看起来像你想要的样子的文档。

然后配置负载平衡器以针对 HTTP 500、502、503 和 504 错误提供此文档。你如何做到这一点会有所不同;检查您的文档。

一些负载均衡器只是“哑巴”TCP 均衡器,它们转发 TCP 连接,在第 7 层什么也不做。其他负载均衡器可以充当完全反向代理(例如 nginx),它们能够完成您的需求。

Brocade ServerIron ADX 文档的快速扫描来看,它似乎无法为 HTTP 请求提供错误文档。虽然它绝对比典型的“哑巴”TCP 转发器更聪明,但它可能不会在这里做你想做的事。

像 nginx 这样的反向代理可以做到这一点,但如果你设置了它,你也可以更换负载均衡器(因为 nginx 也可以进行 HTTP/HTTPS 负载均衡)。