我想为网站设置廉价的冗余,这样我就可以注册 2 个独立的共享托管帐户。两个帐户同时宕机的可能性很小。
有没有办法将我的域名(例如 domain.com)指向我的两个托管账户,其中服务器 1(如果处于活动状态)是主服务器,通常会处理所有请求,而服务器 2 则是在服务器 1 发生故障时备用的?即域名将尝试解析到主服务器,如果发生故障,则检查辅助服务器。
我不太了解 DNS、服务器和喜好,所以也许我上面的建议可能有些天真,如果是这样,有没有更好的方法来做这样的事情?
答案1
DNS 不适合 HA 解决方案,因为返回的记录没有偏好或顺序;即,如果您对同一个站点有两个 A 记录,则两个记录都会始终返回,并且您无法确定在任何特定时刻使用哪一个。
也就是说,如果发生某些情况,可以使用 ddns(动态 DNS 更新)将主机名切换到不同的 IP;这需要在提供服务的机器之外发生(因此需要第三台机器),或者需要同时在两台机器上发生(因此可以说,任何一台活着的机器都会“获胜”)
答案2
您可以为您打算使用的域名设置两个 A 记录,但这里的缺点是,解析时它可能会转到当时可能已关闭的站点。
更好的方法是购买 3 台廉价 VPS 服务器,让其中 2 台托管网站,第三台充当负载均衡器,然后将您打算使用的域名分配给负载均衡器。或者只让一台 VPS 充当共享主机上 2 个域名之间的负载均衡器。
如果您想要获得更高的可用性,您应该设置两个具有心跳的负载均衡器,当第一个负载均衡器出现故障时,它将域指向的 IP 从一个 LB 切换到另一个 LB。