高可用性WordPress设置

时间:2016-03-01 07:58:45

标签: wordpress performance amazon-web-services elastic-beanstalk high-availability

我将在AWS的HA(高可用性)环境中运行WordPress站点。

我已经使用HA MySQL - Amazon Avrora。

现在我有几个问题:

  1. 我应该更喜欢会话复制或粘性会话,还是我的Load Balancer或两者兼而有之?
  2. 用户内容必须上传到CDN,而不是上传到群集中的WP单个节点吗?
  3. AWS如何帮助WordPress HA设置?例如,我应该将AWS Beanstalk用于此目的吗?

    为了为WordPress创建HA,我还应该注意什么?

2 个答案:

答案 0 :(得分:3)

通常,为WordPress环境设置高可用性并不是一件容易的事。有几层应该高度可用(至少应有两个节点并正在进行复制):负载平衡,应用程序服务器,数据库,文件系统,对象缓存。

在Jelastic多云PaaS中,我们使用容器将软件堆栈分层放置,并配置每个容器以实现高可用性。下面显示了我们的WordPress Cluster拓扑的示例。

WordPress Cluster High Availability

请注意,由于网络,电力或硬件故障,整个数据中心也可能会宕机。为了保护您的客户免遭这种不愉快的情况,当在两个不同的独立区域中部署两个WordPress群集时,您将不得不考虑多区域群集。

Multi Region Highly Available WordPress Cluster

维护和更新这种复杂的部署可能是一个严峻的挑战,因此您必须对所有方面都有很好的了解,或者使用ready to go solution specifically designed for WordPress clustering

在这种情况下,以下概述说明可能有助于更好地了解其如何在封面下工作:How to Offer Enterprise WordPress Services for Highly-Loaded Websites。值得一提的是,我们使用了与云无关的方法,因此这些群集拓扑可以部署在AWS,Azure,Google Cloud或任何其他基础架构之上。

答案 1 :(得分:1)

对于StackOverflow,您的问题可能有点广泛,但我处于您的情况,所以我可以同情。

  1. 粘性会话不是首选,因为需要使用它们会表明您的应用程序不是无状态。
  2. 换句话说,您需要粘性会话,这意味着您的应用程序依赖于服务器内存进行会话管理,因此,一旦会话初始化,该用户必须在整个会话期间保持在该服务器上。这没关系,但不太理想(相比之下,如果您的请求根本不关心它运行的是哪个服务器实例),因为如果您的流量速度减慢并且Elastic Beanstalk决定终止您所使用的实例,那么下一步请求当负载均衡器将您路由到另一个实例时,您的会话将被重置,您的用户将不得不再次登录。

    另一方面,如果您的应用程序被编写为完全无状态(例如,通过将状态存储在数据库实例中),则您不关心每个请求命中的服务器,因为状态不会存储在服务器实例上。这将允许Beanstalk自由地向上和向下旋转实例,而不会以任何方式影响您的用户。

    粘性会话的好处是,如果您的应用已经编写了依赖服务器内存,或者由于某种原因必须使用它,它允许您的应用无需更改代码即可运行。

    1. 是的,在我看来,您的用户内容不应上传到任何单个节点(主要与我上面提到的相同)。如果您的用户内容存储在节点上,并且该节点由于流量较低而停止运转,则您将丢失该数据。
    2. 这就像S3之类的东西派上用场。您的应用程序直接与S3进行交互,作为其存储解决方案,每个实例都将内容保存到S3存储桶中。然后,无论哪个节点正在运行,它都可以与同一个S3存储桶通信并获取所需的数据。

      除此之外,我所能推荐的只是你进行实验,研究负载测试,并根据需要进行调整。