Dns Web服务器故障转移

Dns Web服务器故障转移,dns,webserver,failover,Dns,Webserver,Failover,我将运行一个动态网站,如果服务器停止响应,我希望故障切换到一个静态网站,显示“我们停机维护”页面。我一直在阅读,我发现动态切换DNS可能是一种选择,但这种变化会发生多快?每个人都会立即看到变化吗?有没有更好的方法可以故障切换到另一台服务器?DNS有一个TTL(生存时间)并被缓存,直到TTL过期。因此DNS切换不会立即发生。对您的站点进行缓存DNS查找的每个人仍然使用旧值。你可以设置一个疯狂的短TTL,但这是糟糕的性能。DNS几乎肯定不是完成您正在做的事情的正确方法 负载平衡器可以进行这种即时切换

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

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

负载平衡器可以进行这种即时切换。所有流量总是首先到达负载平衡器,在正常情况下,负载平衡器将请求代理到主web服务器。在web服务器崩溃的情况下,您可以让负载平衡器将所有web通信定向到故障转移web服务器。

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


负载平衡器可以进行这种即时切换。所有流量总是首先到达负载平衡器,在正常情况下,负载平衡器将请求代理到主web服务器。在web服务器崩溃的情况下,您只需让负载平衡器将所有web流量定向到故障转移web服务器即可。

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


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

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


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

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

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


如果您使用的是Amazon AWS,您可以使用ELB-Elastic负载平衡器。首先,重要的是要了解您希望故障转移的故障类型,如果是app/db错误,并且服务器仍处于运行状态,您可以创建一个脚本,执行一些检查并将您的网站故障转移到另一个临时页面。(更改apache配置或.htaccess) 如果是硬件故障切换,则DNS解决方案可以,但不是即时的,因此您将丢失一些用户流量

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


如果您使用的是Amazon AWS,您可以使用ELB-Elastic负载平衡器

这类问题最好在serverfault.com解决。这类问题最好在serverfault.com解决。谢谢!这正是我要找的信息。我担心DNS更改会花费太长时间。如果服务器位于两个不同的位置,如果主服务器关闭,我是否能够使用负载平衡器将负载切换到另一台服务器?@yummm:只要负载平衡器处理请求,它就会将其定向到您告诉它的任何位置。顺便说一句,通常负载平衡器和它路由到的web服务器在物理上是紧密相连的(在同一大楼中)。此外,如果您无法访问硬件负载平衡器,例如F5(价格昂贵!),请查看haproxy,它是一种软件负载平衡器(StackOverflow使用过!)。唯一的问题是我使用的是windows服务器。haproxy似乎不支持windows。你知道有什么类似的东西可以在windows操作的机器上工作吗?@Yumm:我不知道有什么好的windows软件负载平衡器。顺便说一句:StackOverflow在前面有haproxy的Windows上运行(可能在Linux服务器上)。谢谢!这正是我要找的信息。我担心DNS更改会花费太长时间。如果服务器位于两个不同的位置,如果主服务器关闭,我是否能够使用负载平衡器将负载切换到另一台服务器?@yummm:只要负载平衡器处理请求,它就会将其定向到您告诉它的任何位置。顺便说一句,通常负载平衡器和它路由到的web服务器在物理上是紧密相连的(在同一大楼中)。此外,如果您无法访问硬件负载平衡器,例如F5(价格昂贵!),请查看haproxy,它是一种软件负载平衡器(StackOverflow使用过!)。唯一的问题是我使用的是windows服务器。haproxy似乎不支持windows。你知道有什么类似的东西可以在windows操作的机器上工作吗?@Yumm:我不知道有什么好的windows软件负载平衡器。顺便说一句:StackOverflow在前面有haproxy的Windows上运行(可能在Linux服务器上)。