高可用性 WordPress 设置

High Availability WordPress setup

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

我已经在使用 HA MySQL - Amazon Avrora。

现在我有几个问题:

  1. 我应该更喜欢会话复制或粘性会话,还是在我的负载均衡器上,还是两者都喜欢?
  2. 用户内容必须上传到CDN而不是集群中的WP单节点?

AWS 如何帮助 WordPress 高可用性设置?例如,我应该为此目的使用 AWS Beanstalk 吗?

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

对于 Whosebug,您的问题可能有点宽泛,但我处于您的情况,所以我可以表示同情。

  1. 粘性会话不是首选,因为需要使用它们表明您的应用程序不是无状态的。

换句话说,您需要粘性会话,这意味着您的应用程序依赖服务器内存进行会话管理,因此,一旦会话初始化,该用户必须在整个会话期间保持在该服务器上。这没问题,但不太理想(与如果您的请求根本不关心它 运行 正在哪个服务器实例相比),因为如果您的流量变慢并且 Elastic Beanstalk 决定终止您所在的实例,然后在负载均衡器将您路由到另一个实例时的下一个请求中,您的会话将被重置,您的用户将不得不重新登录。

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

粘性会话的好处是,如果您的应用程序已经在依赖服务器内存的情况下编写,或者出于某种原因必须拥有它,它允许您的应用程序 运行 无需更改代码。

  1. 是的,在我看来您的用户内容不应上传到任何单个节点(主要出于我上面提到的相同原因)。如果您的用户内容存储在节点上并且该节点由于流量低而停止运转,那么您将丢失该数据。

这就是 S3 之类的工具派上用场的地方。您的应用程序直接与作为其存储解决方案的 S3 交互,并且每个实例都会将内容保存到您的 S3 存储桶中。然后,无论哪个节点 运行ning,它都可以与同一个 S3 存储桶通信并获取它需要的数据。

除此之外,我只能建议您进行试验、研究负载测试并根据需要进行调整。