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