简短而甜蜜,我认为您不需要比这更多的细节:
我们在内部网络服务器上托管我们的网站。
一场灾难已经发生并将再次发生,从网络进出我们大楼的通信停止。
当这种情况发生时,我们希望我们的用户在尝试访问我们的网站时至少看到某种 “停机维护”或其他消息(twitter 的失败鲸?),而不是当前的“找不到服务器” 类型的消息他们目前得到。(静态服务器,所有请求的临时重定向)。
[能够故障转移到功能齐全的网站会很棒,但不是必需的,也可能不是一种选择]。
显然,当我们的本地服务器关闭时,必须有某种异地故障转移可以接管。
这样的解决方案是如何实施的?其他建议?
编辑:如果我没有使用(或省略)一些正确的术语,请告诉我!
外部反向代理可以配置为在全部失败时将用户重定向到另一台服务器。这也将处理 DNS 传播。
谁托管您的 DNS?DYNdns.org 提供了一项服务,如果您的 IP 变得无响应,它将显示离线消息或重定向到另一个 URL。我相信它被称为webhop。这是我唯一熟悉的一个,但如果您的 DNS 是托管的,这可能是一种选择。如果你自己主持,我不确定。
IPVS(IP 虚拟服务器)在 Linux 内核内部实现传输层负载平衡,即所谓的第 4 层交换。运行在主机上的 IPVS 充当真实服务器集群前端的负载均衡器,它可以将基于 TCP/UDP 的服务的请求定向到真实服务器,并使真实服务器的服务以虚拟服务的形式出现在主机上。单个 IP 地址。
因此,您可以为故障转移设置一个外部ipvs + keepalived设置,如果两个 Web 服务都出现故障,您可以在 keepalived.conf 中指定一个“抱歉的服务器”。如果主机位于不同的子网上,则需要使用 LVS-tun(ipip 隧道)。
(来源:ccidnet.com)
有一项名为Simple Failover的服务可以满足您的需求,尽管 DNS 缓存仍然存在问题,因为它是基于 DNS 的解决方案。
我过去发布了一个更长的答案,其中包含更多技术细节,以解释其背后的机制。