I block ads too. Donate?

WordPress 多点负载均衡部署方式

 

WordPress 确实是做博客非常好的一个工具。但是基本上都是单一节点的。做成多个点的集群其实也是非常方便的,并不需要借助什么组件。

 

 

数据库的同步

多点数据库相互同步的方式比较麻烦,也只能构建一个环状结构。因此这里主要讲述的是Master-Master 主主(双主)复制模式的构建

为了方便表述,在这里分别称两个服务器为A和B。 PHPMyAdmin 提供一个非常方便的设置,但是似乎并没有什么用。所以还是自己手动设置吧,首先将两台服务器的配置文件设置好,我使用的是Mariadb。

 

 

两台服务器都必须进行设置,注意,server-id 和 report-host 应该是不一样的。auto_increment_offset 应该一个设置成1,另外一个设置成2。让它们错开。两台服务器都restart 一下,让设置生效。在进行同步的时候,应该合理使用screen,避免重复登陆数据库,另外关闭其它页面服务避免不必要的数据库读写。另外只需要在服务器A设置用户就行了,如果设置全部同步的话,另外一台服务器会复制权限表。

 

登陆服务器A,锁住数据库。

 

使用Screen切出来 导出数据库

 

复制到服务器B

 

在服务器B登陆数据库,并且导入数据

 

 

查看数据库A的记录位置

 

在数据库B设置从模式,注意需要根据上个输出结果填入File和Position

 

这时候应该找到两个Yes, 如果没有找到,就要检查服务器A的表是否有改动了(没有锁住?)。

 

然后锁住数据库B,并显示数据库B的状态。

 

 

在数据库A设置Change master to ,然后显示从状态,这时候出现两个Yes就可以了。

接着两个数据库都可以解除锁定了。

 

 

文件的同步

文件同步有很多方法,最简单的构建就是使用rsync 然后配合crontab定时执行增量式复制。使用了一段时间,感觉还是挺稳定的 。

 

 

WordPress的部署

似乎,并不需要干什么,只不过最好在本机上面host文件,禁用掉一些不必要的插件,pageview那些计数的,其实还是可以用的。只不过有关文件操作的就要注意一点了。发布了才发现没有提及wordpress。

 

 

局限性

数据库同步的技术非常成熟,但是文件只能够做到增量式的相互复制。如果需要删除某个文件就需要在两个服务器上面同时操作。是不太方便的。另外Session并没有同步,如果可以搭配Redis同步会更加好,因此建议在编辑的常用后端,修改host文件绑定ip地址。

 

 

 

这篇博文发表在 服务器开发 目录下,标签为 , , , ,
版权所有,请勿转载。如需引用,请使用链接:https://note.masterchan.me/?p=708
 

您的邮箱地址不会被公开,评论使用Gravatar头像。
Your email address will not be published. This blog is using Gravatar.

正在提交评论...
正在为您准备评论控件