一、为什么 WordPress 集群要先准备共享存储和数据库¶
原笔记的 WordPress 负载均衡案例里,后端不再是简单静态页,而是完整的动态博客系统。
这意味着至少有两类状态要提前统一:
- 数据库存储:文章、配置、用户等业务数据
- 上传目录存储:图片、附件等文件内容
如果只做负载均衡而不统一这些内容,就会很快遇到问题:
- 用户上传文件只出现在某一台 Web 上
- 多台 Web 看到的媒体目录不一致
- 程序连接不到统一数据库
因此,原笔记先从 NFS 和 MySQL/MariaDB 开始搭底座。
二、集群环境里各台主机分别做什么¶
原笔记在 WordPress 案例中给出的角色分工如下:
| 主机 | 地址 | 角色 |
|---|---|---|
oldboy01 |
192.168.1.20 / 172.16.1.20 |
web01 |
oldboy02 |
192.168.1.21 / 172.16.1.21 |
负载均衡 |
oldboy03 |
192.168.1.22 / 172.16.1.22 |
web02 |
oldboy04 |
192.168.1.23 / 172.16.1.23 |
MySQL |
oldboy05 |
192.168.1.24 / 172.16.1.24 |
NFS |
这套拆分思路很典型:
- Web 节点负责页面处理
- 数据库单独放到 DB 主机
- 上传目录单独放到 NFS 主机
三、NFS 共享上传目录怎么做¶
原笔记先在 NFS 主机上安装服务:
yum -y install rpcbind nfs-utils
systemctl enable rpcbind && systemctl start rpcbind
systemctl enable nfs-server && systemctl start nfs-server
然后创建统一用户:
useradd -u 1999 -s /sbin/nologin -M www
id www
接着创建共享目录:
mkdir -p /nfs/wordpress/
chown www.www /nfs/wordpress/
最后编辑 /etc/exports:
/nfs/wordpress/ 172.16.1.0/24(rw,all_squash,anonuid=1999,anongid=1999)
并让配置生效:
exportfs -r
systemctl reload nfs-server
验证:
showmount -e 172.16.1.24
原笔记这里的关键点主要有两个:
- 用
all_squash把访问映射到统一匿名用户 - 用
anonuid=1999、anongid=1999对应www用户,便于 Web 节点统一写入
四、数据库为什么也要单独整理成标准步骤¶
WordPress 作为动态网站,数据库是另一个必不可少的基础设施。
原笔记在数据库主机上使用的是 MariaDB。
先安装并启动:
yum install -y mariadb-server
systemctl enable mariadb
systemctl start mariadb
然后检查:
ss -lntup | grep mysql
只要 3306 正常监听,就说明数据库已经起来了。
五、数据库首次初始化要做哪些事¶
原笔记继续使用 mysql_secure_installation 做标准安全初始化,主要包括:
- 给数据库
root设置密码 - 删除匿名用户
- 禁止
root远程登录 - 删除测试数据库
- 刷新权限表
这一步是数据库上线前非常重要的安全清理动作。
虽然命令行过程很长,但本质目标就是:把刚装好的默认数据库环境收紧到可用于生产或实验集群的状态。
六、WordPress 专用库和账号该怎么创建¶
原笔记随后登录数据库并直接创建业务库与业务账号:
mysql -uroot -p123456
进入后执行:
create database wordpress;
grant all on wordpress.* to 'wp'@'172.16.1.%' identified by '1';
这两条语句分别完成:
- 创建
wordpress数据库 - 授权用户
wp从172.16.1.%网段访问该库
验证方式也很直接:
show databases;
select user,host from mysql.user;
如果能看到:
- 库
wordpress - 用户
wp@172.16.1.%
就说明 WordPress 后面需要的数据库入口已经准备好了。
七、为什么这里的授权方式很适合集群¶
原笔记给 wp 用户授权时,没有只写 localhost,而是写成:
'wp'@'172.16.1.%'
这意味着:
web01可以连数据库web02也可以连数据库- 同一内网网段里的业务节点都能按授权范围访问
这正符合负载均衡架构的需要,因为 WordPress 最终不是只跑在单台 Web 上。
八、小结¶
WordPress 接入负载均衡之前,最重要的并不是先写 LB 配置,而是先把“共享数据”准备好:
- 上传文件用 NFS 统一存放
- 业务数据用 MariaDB 统一管理
- 用户和目录权限提前按
www统一
这样后面两台 Web 节点挂上同一份共享目录、连上同一个数据库时,站点才能真正具备集群运行的基础。