使用两个网站托管以获得更好的可用性

使用两个网站托管以获得更好的可用性

我有两台 VPS 服务器,分别来自两家不同的托管公司。如果第一台 VPS 不可用,我想回退到第二台 VPS(最好是自动的)。我知道,如果我有一个具有 root 访问权限的单个负载均衡器,我可以将其设置为在不同的后端服务器之间切换。但是,使用来自两家不同托管公司的 VPS 是否可行?谢谢。

答案1

这一切都取决于具体情况。实现更高可用性的标准方法确实是负载均衡器。问题是您至少需要两个负载均衡器

画一张小图来说明一下:

                                  +-----------+
                             +--->| Backend 1 |
        +----------------+   |    +-----------+
WAN --->| Loadbalancer 1 |---+
        +----------------+   |    +-----------+
                |            +--->| Backend 2 |
                | Fallback        +-----------+
                v
        + - - - - - - - -+
        | Loadbalancer 2 |
        + - - - - - - - -+

解释

负载均衡器位于所有后端服务器之前,并代理所有请求到后端服务器。辅助负载均衡器也保持在线,并检查主负载均衡器是否可访问。如果主负载均衡器发生故障,辅助负载均衡器将接管其 IP 并开始提供服务。

(此配置的)优点

  • 负载均衡器本身不需要承担太多负载,就可以分配流量,因此可以比后端服务器服务更多的用户。[1]
  • 负载均衡器可以检测后端是否无法再处理流量,并可以停止向后端发送流量 [2]
  • 负载均衡器可以为后端缓存静态文件
  • 负载均衡器可以终止 SSL [3][4]
  • 如果负载均衡器发生故障,它可以回退到辅助均衡器而无需停机[5][6]

缺点

  • 它需要更多的钱
  • 如果平衡器前面的网络出现故障,这将无济于事。

脚注

[1] 当然,负载均衡器需要的带宽要大于后端服务器的最大带宽总和(这不一定是接口的最大带宽,具体取决于应用程序)

[2] 这不仅仅是好事。如果两个后端都达到或接近其最大容量,并且负载均衡器关闭了一个后端,则另一个后端将获得所有流量,整个系统将崩溃。这需要很好的调整

[3] 事实上,如果负载均衡器不想盲目地通过连接路由流量,就必须这样做。

[4] 如果你不信任后端网络,也许你必须在后端之后重新建立一个新的 SSL 连接

[5] 你必须确保当主服务器宕机时,它会一直处于宕机状态,直到你再次需要它为止,以防止诸如切换和 IP 重复使用之类的问题

[6] 你必须确保负载均衡器之间的连接非常非常稳定

答案2

如果您有单个负载均衡器,它在高可用性方面不会有太大帮助,您仍然会有一个单点故障。内容分发网络 (CDN) 曾经是一种可行的方法,但您可能需要等待更多答案......

答案3

即使您在第三个位置有负载均衡器(您可以在 HA 主动-备用中配置它们),您仍然容易出现网络问题。由于您的两个 VPS 可能位于两个不同的数据中心,因此您的网络性能可能会很差,因为您的负载均衡器会联系 VPS,发出请求并将响应转发给客户端,因此如果包含平衡器的数据中心离线或遇到网络问题,您的 2 个 VPS 就毫无用处了。

答案4

发布的所有内容都很好且正确。但是,我可以看到实现所述目标的不同方法(由第三方托管公司托管的后备系统):

DNS 回退

使用此方法,DNS 提供商会检查主系统的可用性,如果被检查的系统没有正确响应,则切换到后备系统。

市场上有很多供应商提供此类服务(Amazon Route 53、DNS Made Easy ......)。此外,您还将获得更快的 DNS 系统(全球分布、任意播送监听 DNS 服务器)。

- 这不是高可用性!如果发生中断,需要一些时间来识别中断并调整 DNS。但也许这已经足以满足您的要求了。

相关内容