简短而又甜美,我想你不需要比这更多的细节:
我们在一个内部networking服务器上托pipe我们的网站。
灾难已经发生,而且将会再次发生,因为从networking进出我们的build筑物的通信已经停止。
发生这种情况时,我们希望我们的用户在尝试访问我们的网站时至less看到某种“停机维护”或其他消息(Twitter的失败鲸鱼?),而不是当前的“未find服务器”types的消息他们目前得到。 (静态服务器,所有请求的临时redirect)。
[能够故障切换到一个function齐全的网站将是非常棒的,但不是必需的,可能不是一个选项]。
显然,当我们的本地服务器closures时,必须有某种异地故障转移。
这样的解决scheme如何实施? 其他build议?
编辑:如果我不使用(或遗漏)一些正确的术语,让我知道!
当全部失败时,可以将外部反向代理configuration为将用户redirect到另一个服务器。 这也将负责DNS传播。
谁托pipe您的DNS? DYNdns.org提供的服务,如果你的IP变得无法响应,它会显示一个离线消息或redirect到另一个url。 我相信这就是所谓的networking。 这是我唯一熟悉的,但是如果你的DNS被托pipe,这可能是一个选项。 如果你主持你自己,我不确定。
IPVS (IP虚拟服务器)在Linux内核中实现传输层负载均衡,即所谓的第4层交换。 在主机上运行的IPVS充当真实服务器集群前端的负载均衡器,它可以将对基于TCP / UDP的服务的请求引导到真实服务器,并使真实服务器的服务在虚拟服务器上显示为虚拟服务单个IP地址。
所以你可以select一个外部的ipvs + keepalived设置进行故障转移,如果两个web服务都closures了,你可以在keepalived.conf中指定一个“sorry server”。 如果主机位于不同的子网上,则需要使用LVS-tun(ipip隧道)。
替代文字http://tech.ccidnet.com/col/attachment/2003/11/261517.jpg
有一个称为简单故障转移的服务,可以做你想做的事情,尽pipeDNScaching仍然存在问题,因为它是一个基于DNS的解决scheme。
我在过去的一个类似的问题上发布了更多的技术细节,解释了它背后的机制。