我正在开展一个包含多个 WordPress + Woocommerce 商店的项目。我们有 3 台专用服务器。随着流量的增长。有时,服务器会宕机。我正在寻找适用于这些 wordpress+woocommerce 网站的故障转移解决方案。
首先,我找到了 CloudFlare。它会自动故障转移到另一个“A”记录。所以我只需要将所有文件和数据库复制到其他服务器作为备份。当第一台服务器停机时,它将指向另一台服务器。
但这又带来了另一个问题。当它指向第二台服务器时。数据库中的所有数据都会回到创建备份时。当原始服务器修复后,域会指向原始服务器。然后写入第二台服务器的所有数据都会消失,因为它没有写入原始服务器。
然后我研究了数据库的主从复制。假设原始服务器是主服务器,第二台服务器是从服务器,每次客户购买产品或发表评论时,都会写入主数据库。然后从服务器同步主数据库。但问题是,当原始服务器关闭时。它会切换到只读的从服务器。因此,即使客户可以加载网站。他们无法购买或发表评论。
我不知道下一步该做什么。请帮忙。谢谢。我们想存档以下内容:
- 当一个服务器宕机时切换服务器
- 随时同步数据库,切换过程中无数据丢失
答案1
由于您有 3 台专用服务器,因此您可以使用 Galera 3 节点集群来实现主动-主动数据库集群,这样您就不必指向特定节点,而是它们都作为一个节点工作。
https://mariadb.com/kb/en/getting-started-with-mariadb-galera-cluster/
您还需要一个负载均衡器,但您可以在每个具有虚拟 IP 的服务器上使用 haproxy 来进行负载平衡并在 HA 模式下进行设置。
然后,您还需要 3 个 WP 实例,因此您可以使用类似 NFS 磁盘的东西将相同的挂载点导出到所有服务器,或者每隔 1 分钟通过 cron 同步到服务器。
当然,如果使用云提供商的话,这会容易得多,但是如果设置了 3 台专用服务器,这绝对是可行的。