高可用性网站



实现动态网站高可用性的最佳方法是什么?如果我在另一台服务器上创建第二个副本,但不希望使用负载均衡器,因为它会扰乱用户会话,那么最好的替代方案是什么?

您可以将会话数据存储在数据库中,这样可以解决这个问题,然后您可以将请求循环发送到应用程序服务器。

(好)负载均衡器可以配置为"粘性",这意味着它们每次都从同一IP向同一服务器发送请求。

即使您有一个负载平衡器位于两个后端Web服务器前面,您也只需将单个故障点转移到负载平衡器而不是Web服务器上。因此,您的应用程序仍然不具有高可用性。

我强烈建议使用负载均衡器和至少一对web服务器。在工作中,我们使用HA Proxy,它完全能够确保会话是"粘性的",并被发送到同一个web服务器,除非它出现故障,否则它将在那里进行故障转移。

为了使负载均衡器高度可用,您可以设置两个彼此镜像的负载均衡服务器。为两个负载平衡器分配一个虚拟IP。编写一个脚本,轮询另一台服务器以检查它是否已关闭;如果它坏了,让脚本获取那个虚拟IP地址。脚本应该在两台服务器上都运行。

此链接描述了一种管理虚拟IP地址的方法。类似的文章已经为大量linux发行版编写过,但它们都基于相同的方法。

负载平衡器。它们的配置方式应确保能够处理会话。也许每次都将相同的ip发送到相同的后端。或者将它们存储在数据库中,或者一些共享内存中,如果出于某种我没有想到的原因需要非常快的话。