我需要在多台服务器上托管我的网站,以便如果我的主服务器出现故障,那么备份服务器将开始工作。
我的主服务器有一个静态 IP 地址,网站当前正在该地址上运行。我想在 Godaddy 上设置备用托管,这样如果主服务器宕机,Godaddy 托管将开始在同一个静态 IP 上工作。
是否可以?
答案1
您可能想要实现的是负载平衡/缓存基础设施。有几种方法可以实现这一点。您首先要决定的是如何实现它以及您的负载平衡器将托管在哪里。
选项 1 - 使用 DNS 循环进行负载平衡
从技术上讲,这并不是真正意义上的负载平衡。您可以通过在 DNS 中添加 2 个或更多 A 记录来实现此目的,每个条目指向同一个域,但 IP 不同。因此,请使用您当前的静态 IP,并在第二条记录上使用 GoDaddy 的 IP(如果 GoDaddy 为您提供 IP)。
这个的局限性在于它不会系统地检查最可用的服务器并将请求发送到那里。它只是随机地将请求发送到您的 DNS 记录上的 IP。这意味着请求仍然有可能被发送到关闭的服务器。
选项2-将HA代理或Nginx实现到负载均衡器
解释起来有点长。你需要在这里阅读。但这非常可靠。使用这种系统,您的负载均衡器可以检查哪个是最可用的服务器并将请求发送到那里。因此它不会将请求发送到已关闭的服务器。同时,您可以对其进行配置以避免将请求发送到繁忙的服务器。
选项3-CloudFlare(免费)
CloudFlare 可以缓存您的文件,并在您的网站关闭时显示缓存的副本。取决于您的需求和您运行的网站类型。免费套餐的缓存不是 100% 最好的,但效果很好。付费套餐的缓存效果更好。
答案2
一些根服务器提供商提供可路由 IP 地址(故障转移 IP);这样,您可以设置两台服务器,准备使用相同的可路由 IP 地址(除了它们的静态主 IP)。要使两台服务器保持同步,您可以使用网络文件系统(如 drbd 和/或 db 复制)。当主服务器发生故障时,您可以自动将域 IP 地址重新路由到辅助服务器。
您的提供商可能不会提供此功能,但据我所知,这是唯一一种仅需两台服务器即可使用的解决方案。故障安全负载平衡至少需要 3 台服务器。
如果可以接受短暂的停机时间,您可以为您的域名的 a 记录设置一个非常短的 ttl,例如 5 分钟,并适当更新您的 dns 记录以指向“活动”服务器。