一、为什么 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=1999anongid=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 数据库
  • 授权用户 wp172.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 节点挂上同一份共享目录、连上同一个数据库时,站点才能真正具备集群运行的基础。