我的主机向我收取每月 50 美元的费用,以将我的服务器放在同一个 VLAN 上,以便我使用网络负载平衡功能创建一个集群。
我真的不需要在服务器之间分配负载,我正在寻找一种简单的方法来创建故障转移方案以防止服务器故障。但是,我认为这笔费用有点贵。
有什么方法可以在不使用 NLB 的情况下创建集群?也许是监视我的主服务器并在它出现故障时更改域的 DNS 的东西?
我的主机向我收取每月 50 美元的费用,以将我的服务器放在同一个 VLAN 上,以便我使用网络负载平衡功能创建一个集群。
我真的不需要在服务器之间分配负载,我正在寻找一种简单的方法来创建故障转移方案以防止服务器故障。但是,我认为这笔费用有点贵。
有什么方法可以在不使用 NLB 的情况下创建集群?也许是监视我的主服务器并在它出现故障时更改域的 DNS 的东西?
DNS 是模拟故障转移的糟糕选择。原因是
我的建议是
我强烈推荐阅读Theo Schlossnagle的Scalable Internet Architectures ,因为他详细介绍了这一点
您可以使用ldirectord设置一个单独的负载平衡框,它监视您的 Web 服务器,并在当前活动的任何服务器之间进行负载平衡(并且通过扩展,在一台服务器出现故障时保持站点正常运行)。我们使用此解决方案允许我们重新启动两个网络服务器中的任何一个,而不会影响站点的正常运行时间。
事实上,如果你的网络服务器是 linux 机器,你可以在网络服务器本身上运行ldirectord,并使用心跳来保持ldirectord在 live 机器上运行。
此解决方案允许您在两个或多个盒子之间共享一个公共 IP 地址(或多个),并完全避免 DNS 问题。
一种方法是将您的站点放在两台不同的服务器上,然后在第三个位置设置一个站点监视器,以监视与主服务器(您的 DNS 通常指向的位置)的连接。如果它检测到站点已关闭,请让监视器执行脚本或点击动态 dns 提供商的更新 URL(例如DtDNS [我运营的] 或DynDNS.com),其中指定了备份服务器的 IP 地址您的域名/主机名。这将更新 DNS 记录并将流量定向到您的备份 Web 服务器。当主站点重新上线时,监控可以运行另一个脚本或 URL,将“真实”IP 恢复。
这里的一个关键是让 DNS 托管在一个在其系统中具有 API 的提供商处,以便您的域可以快速更新,并保持 TTL 足够低,以便访问者可以相对快速地被重定向。
另一个是必须从外部、客观的位置监控该站点。您不能在站点所在的同一 Web 服务器上运行监控。如果整个服务器宕机,监控/更新方法也会随之宕机。
SimpleFailover或多或少可以满足您的需求。记住 DNS 被缓存,所以它不是一个完美的解决方案。
关于多个 A 记录,我最近看到了有关 Vista 和 Win Server 2008 实施RFC3484的讨论,这意味着您不能依赖循环,并且可能会从这些客户端获得不均匀的服务器负载。
DNS Made Easy允许您设置您的 DNS,以便如果服务器关闭,它会将您指向其他地方。在我们的例子中,我们有一个静态页面显示该站点已关闭,请稍后再试。
如果以这种方式使用 DNS,则需要配置一个相对较短的 TTL 来绕过缓存问题。