本指南将使用双Linode集群配置高可用的WordPress站点,数据库采用MySQL双主复制(Master-Master replication),并使用Linode NodeBalancer作为前端管理工具。
先决条件
本指南基于Debian 7或Ubuntu 14.04编写。要完成该指南,请确保您的账户中至少存在两个Linode节点和一个NodeBalancer。两个Linode节点都需要私有IP地址。同时还要确保已经在Linode节点上配置了SSH密钥,并且还需将另一台Linode主机的SSH密钥添加在本机的/.ssh/authorized_keys
文件中。
注意
本指南是为非root用户编写的,会在需要提升权限的命令之前加上
sudo
。如果您不熟悉sudo
命令,请参阅Linux用户和用户组指南。
安装所需软件包
使用以下命令在每个Linode节点上安装Apache,PHP和MySQL:
编辑MySQL配置文件以设置双主复制
1.编辑每个Linode节点上的/etc/mysql/my.cnf
配置文件,添加或修改以下值:
Server 1:
Server 2:
2.对于每个Linode节点,编辑bind-address
配置以使用私有IP地址:
3.修改完配置文件后,重启MySQL应用:
创建复制用户
1.在每台Linode节点上登录MySQL:
2.在每台Linode节点上配置复制用户。将x.x.x.x
替换为另一台Linode节点的私有IP地址,并将password
修改为强密码:
3.返回终端,运行以下命令以测试配置。使用另一台Linode节点的私有IP地址:
此时您应该可以通过以上命令连接到远程服务器的MySQL实例。
配置数据库同步复制
1.在第一台服务器上登录MySQL,查询主节点状态:
请注意显示的文件名和所在位置:
2.在第二台服务器上,根据MySQL的提示,为该数据库设置从属功能。将x.x.x.x
替换为第一台服务器的私有IP。还要将master_log_file
和master_log_pos
替换为上一步中对应的值:
3.在第二台服务器上,查询主节点状态。注意文件名及其所在位置:
4.在第一台服务器上设置从属数据库状态,重复步骤2,并将需要修改的值替换为第一台服务器上相对应的值:
5.在两台Linode节点上退出MySQL:
配置Apache
两台Linode服务器均需要执行本章节的以下步骤。
注意
请将之后出现的
example.com
替换为您的域名。
1.输入以下命令禁用默认的Apache虚拟主机:
2.切换至/var/www
目录:
3.输入以下命令,创建用来保存网站的文件夹:
4.在您刚刚创建的文件夹中创建一组文件夹,以存储您网站的文件、日志和备份:
5.为网站创建虚拟主机文件:
/etc/apache2/sites-available/example.com.conf:
警告
在Apache 2.4(Ubuntu 14.04使用的版本)及之后的版本中,虚拟主机文件必须以
.conf
扩展名作为结尾。.conf
扩展名在之前版本的Apache兼容。
6.输入以下命令启用新网站:
7.重启Apache:
安装WordPress
1.在Linode主节点上,下载并安装最新版本的WordPress。请根据您的实际配置替换以下命令中列出的所有路径:
2.配置MySQL数据库以安装WordPress。您需要将wordpressuser
和password
替换为您自己的设置:
3.设置网站根目录权限以确保WordPress能够完成其配置步骤:
4.使用Web浏览器访问您Linode的IP地址,并完成配置步骤以安装全功能的WordPress。
警告
为了确保每个WordPress实例都能定位到本地数据库,您需要将此步骤中的 Database Host(数据库主机)值设置为
localhost
。这也是WordPress的默认值。
5.通过WordPress管理界面中的 General Settings(常规设置)配置WordPress URL和网站地址,并确保在两个字段中都配置了您的域。

注意
完成WordPress安装步骤并首次登录后,应重置网站根目录的权限以确保安全。您可以使用以下命令来重置根目录权限:
6.完成WordPress安装步骤后,将配置文件复制到另一台Linode节点。将x.x.x.x
替换为另一台Linode节点的IP地址:
7.登录另一台Linode节点并重启Apache:
使用Lsyncd配置文件夹同步
1.在Linode集群主节点安装Lsyncd:
2.创建配置文件以执行同步操作。将x.x.x.x
替换为集群中另一台Linode节点的私有IP地址:
3.启动Lsyncd进程:
4.测试Lsyncd是否已经成功启动:
如果此命令返回的结果不是lsyncd is running
,请仔细检查lsyncd.conf.lua
配置文件,并确保RSA公钥位于从属服务器的正确位置。
5.通过在主Linode节点的/var/www
文件夹中创建文件来测试同步复制是否生效。几秒钟后您应该能够在从属Linode节点上的相同路径下看到该文件。
配置您的NodeBalancer
1.打开Linode管理界面中的NodeBalancer选项卡。
2.如果您之前尚未配置,请添加NodeBalancer,并确保它与后端Linode服务器位于同一数据中心。
3.选择您新添加的NodeBalancer并点击“Create Configuration”。按如下所示,编辑配置文件:
4.点击“Save Changes”按钮后,系统将提示您添加Linode节点。为每台节点提供唯一的标签,并在每个节点的地址字段中输入私有网络地址和端口号。
5.添加完两个节点后,确保节点运行状况检查功能处于启用状态。等到两个节点都显示为启动状态,返回NodeBalancer主页并记录列出的IP地址。您现在应该能访问该IP地址并查看您的网站。
为了测试高可用性,可以在其中一个节点上停止Apache2/MySQL服务,或者关闭其中一个节点。即使其中一个节点被标记为关闭状态,您的网站仍可以继续提供服务而不会出现问题。
恭喜,您现在已经成功搭建了高可用的WordPress网站!
参考文章