Web服务器故障转移

时间:2009-11-23 06:20:21

标签: dns webserver failover

我将运行一个动态网站,如果服务器要停止响应,我想故障转移到显示“我们正在维护”页面的静态网站。我一直在阅读,我发现动态切换DNS可能是一种选择,但这种变化发生的速度有多快?大家会立即看到变化吗?有没有更好的方法可以故障转移到另一台服务器?

3 个答案:

答案 0 :(得分:1)

DNS有一个TTL(生存时间)并缓存,直到TTL过期。因此,DNS切换会立即发生。对您的网站进行缓存DNS查找的每个人仍使用旧值。你可以设置一个疯狂的短TTL,但这对于性能来说很糟糕。 DNS几乎肯定不是完成你正在做的事情的正确方法。

负载均衡器可以进行这种即时切换。所有流量始终首先命中负载均衡器,在正常情况下代理请求到主Web服务器。如果Web服务器崩溃,您可以让负载均衡器将所有Web流量定向到故障转移Web服务器。

答案 1 :(得分:0)

p p,perlbal或其他软件负载均衡器可以做到这一点,我相信,是的

甚至Apache重写规则可能允许这样做?不过,我不确定在动态服务器不可用时是否有分支的方法。根据自己的喜好自定义Apache 404响应?

答案 2 :(得分:0)

首先,重要的是要了解您希望故障转移的哪种故障,如果它是app / db错误并且服务器保持运行,您可以创建一个脚本来执行某些检查并将您的网站故障转移到另一个临时页面。 (更改apache配置或.htaccess) 如果是硬件故障转移,DNS解决方案是可以的,但它不是立即的,因此您将丢失一些用户流量。

最理想的解决方案是使用代理(如HAProxy)将HTTP请求转发到至少2个Web服务器,并自动检测其中一个是否失败并切换到正常工作。

如果您使用的是亚马逊AWS,则可以使用ELB - Elastic Load Balancer