欢迎光临
我们一直在努力

揭开WHMCS的高可用性神秘面纱

我最近在cPConference 2018上发表了关于Web应用程序高可用性的演讲,特别是如何使用WHMCS实现高可用性。

在这篇博文中,我将尝试总结该演讲并演示如何在当今的高可用性设置中部署WHMCS,以及了解我们在WHMCS 7.7中正在做什么以使高可用性部署更容易实现在未来。

什么是高可用性?

可用性用于描述服务在线和运行的时间段。凭借高可用性,我们正在尝试创建一个持续运行的系统,即使其某些组件发生故障。我们通过消除单点故障来实现这一目标,从而更多地保持在线状态。

最简单的是,高可用性是在Web堆栈的每个级别都具有冗余的想法。该冗余通常以两种方式之一提供:


在主动/主动设置中,每个组件具有两个实例,并且两者同时运行,并且两者之间的流量均匀分布,同时两者都可操作。

在主动/被动设置中,每个组件再次具有两个实例,但是一次只有一个实例在运行。当一个组件发生故障时,另一个组件“唤醒”并成为活动组件。这通常称为故障转移设置。

高可用性有哪些好处?

  • 消除停电成本 – 通过始终保持您的业务在线,您始终可以开展业务并且不会错过收入
  • 改进的容错 – 消除了因系统故障导致的停机和服务中断
  • 更轻松的扩展 – 高可用性设置是负载平衡的垫脚石,使您可以横向扩展并在多台计算机上分配访客流量
  • 无缝维护 – 能够一次执行一个节点的系统更新和维护,因此客户不会受到影响
  • 提高安全性 – 实现更好的职责分离,允许更严格地控​​制系统每个组件的安全性
  • 客户信任/忠诚度 – 通过始终在线提供客户信任,并在客户需要时提供。

高可用性有哪些注意事项?

要实现WHMCS的高可用性,至少我们需要至少两个Web服务器节点。此外,我们必须以无状态的方式实现系统的所有组件。必须考虑4个关键区域:

文件系统存储 – WHMCS具有许多写入文件系统的方案。这些文件必须在部署的所有实例中可用。
会话 – 会话需要以允许用户在任何Web服务器节点之间无缝转换的方式进行设置。
数据库 – 为了实现数据库层的冗余,我们需要使用复制来为我们提供MySQL数据库的多个副本。
负载均衡 – 要在我们的Web服务器节点之间分配流量并检测Web服务器节点何时变得不健康,我们需要使用可以分配传入流量的负载平衡器。
因此,考虑到上述情况,以下是此类设置的外观:

图1:WHMCS 7.6及更早版本的WHMCS高可用性设置


在上面的示例中,我们的用户点击我们的负载均衡器,该负载均衡器配置了会话粘性/亲和力,以便单个用户始终访问同一个Web服务器。这允许会话持久性。网络附加存储设备用于在Web服务器节点之间共享文件,并且我们的数据库具有主/主复制设置。可以根据需要水平扩展此示例中的Web服务器节点。

我们在WHMCS 7.7中做了些什么来简化它?

在WHMCS 7.7中,我们引入了两个关键的新功能区域,这使得在高可用性配置中部署WHMCS变得更加容易。其中包括:

1。Amazon S3支持文件存储 – 亚马逊的S3服务提供无限的存储空间,高水平的耐用性和经济高效。这消除了对本地文件系统的依赖,并增加了WHMCS本地使用S3进行所有文件上载的能力。通过消除对本地文件系统的依赖,这解决了负载平衡设置的挑战之一。
2.支持数据库驱动的会话 – 通过将会话移动到数据库中,这将通过允许用户无缝地在多个Web服务器节点实例之间进行转换而不会丢失会话状态来简化负载平衡设置。
因此,通过这些更改,让我们再次使用WHMCS 7.7及更高版本来查看我们的示例: 

图2:WHMCS 7.7及更高版本的WHMCS高可用性设置


在此示例中,我们现在使用AWS,并利用AWS区域内的多个可用区域来增加冗余。这次我们不再需要使用会话粘性来使用我们的负载均衡器,而是使用S3进行附件和下载存储。其余的设置基本保持不变,但通过引入数据库支持的会话,我们可以从真正的负载平衡中受益,并减少了管理共享文件存储的NAS设备的开销。

这只是对HA设置中部署WHMCS所需内容的高级概述,但希望它能够介绍如何使用WHMCS实现高可用性。随着云计算变得更加突出,服务成本降低,高可用性变得越来越容易获得。对于类似AWS的设备,现在可以相对便宜地实现诸如上述设置。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。