许多网络主机现在保证其服务的正常运行时间为 99.9%,但这仍然每年最多有 8.7 小时的停机时间。
许多公司不能够承担这种风险。例如。在超级碗比赛中失败的体育新闻网站可能会失去忠实的追随者。
我们通过设置维护高可用性 WordPress分布式部署配置来帮助 WordPress 网站主防止此类灾难性故障。
今天我们将介绍我们的支持工程师如何设置 WordPress 多服务器。
如何在多个服务器上设置 WordPress分布式部署?
将 WordPress 移动到多个服务器通常会产生跨服务器数据不完整、会话文件损坏、网页加载缓慢等问题。
幸运的是,这些限制可以通过规划和使用 HAProxy、Percona XtraDB 等特殊工具来纠正。
在这些软件的帮助下,我们的支持工程师仅用 5 台服务器就成功地在多台服务器中实施了 WordPress。
让我们看看这个实现中的 3 个主要步骤。
步骤 1. WordPress 文件的高可用性
维持网站正常运行的第一步是确保 WordPress 文件始终可用。
为此,我们使用 3 台服务器并在每台服务器中维护一组相同的网站文件。
在一台服务器上完成的 WordPress 帖子添加、删除、媒体上传等任何操作都应立即在所有服务器上更新。否则访问者可能会发现网站异常。
由于文件变化太多,要在最短时间内更新所有服务器上的文件成为一个真正的挑战。
根据我们在管理服务器方面的专业知识,我们看到Unison是适用于 WordPress 文件的解决方案之一。
Unison 有助于更新所有服务器上的网站内容更改。
步骤 2. 数据库的高可用性
我们现在在所有 3 个服务器中都有相同的网站文件。
WordPress 将其所有帖子、评论等存储在数据库中。即使是 WordPress 中的一个小页面添加也涉及多个数据库操作。
因此,下一步是确保 WordPress 数据库始终正常工作。
为此,我们使用数据库服务器集群。为了任何集群的正常工作,我们需要一个至少包含 3 台服务器的服务器池。只有 2 个服务器的问题是,如果服务器之间的连接丢失,高可用性的整个想法就会失败。
可以在同一台服务器上运行多个服务,如 Web 服务器、数据库服务器等。
因此,我们使用与文件集群相同的 3 台服务器设置了一个数据库集群。
数据库集群中最大的挑战是即时复制所有服务器中的数据库更改。也就是说,当一个条目从数据库中删除时,它也必须从其他服务器中删除。
而且涉及到太多的读写操作。
我们已经看到像Percona XtraDB这样的工具确实有助于确保数据库的高可用性。
为了使数据库始终可用,我们的专门支持工程师在Percona XtraDB集群中进行配置更改,包括以下步骤:
- 避免数据库更新冲突
- 禁止外部访问
- 启用日志进行故障分析
步骤 3. 设置负载均衡器
现在我们已经设置了 WordPress 文件集群和数据库集群,下一步是设置一个系统来平均处理网站请求。
这是负载均衡器提供帮助的地方。它在服务器之间平均分配访问者,有助于避免单个服务器过载。
如果您的网站一次有 1000 个访问者,Load Balancer 会将这些访问者分配到 3 个服务器,每个服务器只需要处理大约 300 个访问者。
根据客户的具体要求,我们部署了负载均衡器,如HAProxy,即使对于流量大的网站,也被认为是高效的。
但是,如果负载均衡器本身出现故障怎么办?整个设置失败。
这就是为什么我们为 Load Balancer 实施一个保持激活的备份服务器。此备份服务器用作负载平衡器的故障转移选项。
因此,使用此设置,访问者将永远不会遇到任何网站运行缓慢或停机的情况。
结论
通过在多台服务器中正确设置 WordPress,可以消除网站因流量过大而宕机的风险。今天,我们看到了我们的支持工程师如何帮助客户实现 WordPress 网站 100% 的正常运行时间。