WordPress多台服务器负载均衡,文件同步用NAS完美解决

去年双11,我负责的WordPress电商站流量突然暴增5倍,单台服务器CPU拉满,网站访问慢到几乎打不开。紧急加了一台服务器做负载均衡,结果发现用户上传的图片只在一台服务器上,另一台服务器访问就404。最后用阿里云NAS共享存储解决了这个难题,现在流量再翻倍也不慌了。

立即了解 阿里云文件存储 NAS

查看详细配置、价格和使用指南

访问官方页面 →

遇到的问题:负载均衡后文件不同步

当时的场景是这样的:

  • 原本单台2核4G云服务器,跑WordPress+MySQL,日常流量3000PV/天没问题
  • 双11活动期间流量暴增到1.5万PV/天,服务器CPU持续90%以上,页面加载要10秒+
  • 紧急购买第二台服务器,配置SLB负载均衡,把流量分摊到两台机器

负载均衡上线后,流量分流效果明显,CPU降到50%左右。但很快客服反馈:用户上传的商品图片经常显示不出来

问题根源

WordPress的 wp-content/uploads 目录存储用户上传的图片。用户请求打到服务器A,图片上传到A的本地磁盘;下次请求打到服务器B,B的本地磁盘里没有这张图片,就返回404。

当时考虑过三个方案:

方案实现方式问题
方案1:定时同步脚本服务器A定时同步到服务器B延迟高(几分钟一次),单点故障风险
方案2:上传到OSS插件自动上传到对象存储改造成本高,历史图片迁移麻烦
方案3:NAS共享存储两台服务器挂载同一个NAS目录实时同步,无需改代码

最终选择了NAS方案,原因是改造成本最低,且文件实时同步,不用担心延迟

解决方案:NAS共享存储部署步骤

  1. 购买NAS文件系统:阿里云控制台进入文件存储NAS,创建文件系统
    • 存储类型:通用型NAS(适合中小流量)
    • 协议类型:NFS(Linux服务器用NFS,Windows用SMB)
    • 地域:必须与ECS在同一地域
  2. 创建挂载点:文件系统详情页添加挂载点
    • 网络类型:专有网络VPC
    • VPC和交换机:选择与ECS相同的VPC
    • 权限组:默认权限组(允许所有IP读写)
  3. 两台服务器分别挂载NAS:安装nfs-utils客户端工具,创建本地挂载目录,执行mount命令连接到NAS的挂载地址,协议版本选NFSv3
  4. 迁移WordPress上传目录:在服务器A上把原有uploads目录的文件同步复制到NAS挂载目录下,确认文件完整后,把本地uploads目录改名备份,再创建一个指向NAS挂载路径的软链接,命名为uploads
  5. 服务器B做同样的软链接:删除服务器B本地的uploads目录,创建指向同一个NAS挂载路径的软链接
  6. 设置开机自动挂载:在两台服务器的系统挂载配置文件中添加NAS挂载信息,确保重启后自动挂载不丢失
部署耗时统计

整个流程从购买NAS到两台服务器配置完成,实际耗时约30分钟,其中大部分时间是迁移历史文件(我们有15GB图片)。

效果验证:问题彻底解决

部署完成后,我们做了几项测试验证效果:

测试1:文件同步实时性

在WordPress后台上传一张图片,立即访问页面,无论请求打到服务器A还是B,图片都能正常显示。查看两台服务器的挂载目录,文件列表完全一致。

测试2:性能影响

上传图片的速度几乎没有变化(NAS在同VPC内,网络延迟1ms以内)。页面加载速度从原来的10秒降到2秒左右,主要是负载均衡分流的效果。

测试3:扩展性

双12活动又加了第三台服务器,只需要重复挂载NAS和创建软链接,10分钟搞定,不需要迁移任何文件。

架构改造前后对比
  • 改造前: 单机2核4G,流量1.5万PV卡顿
  • 改造后: 2台2核4G加SLB加NAS,流量3万PV稳定
  • 成本增加: 服务器和SLB约200元/月,NAS约30元/月
  • 收益: 流量容量翻倍,横向扩展能力获得

成本分析和优化建议

很多人担心NAS会增加不少成本,实际算下来并不高:

费用项规格月费用
NAS存储容量100GB9元
NAS吞吐量按需计费约20元
合计-约30元

相比OSS方案(存储9元/月加流量费约50元/月),NAS在多服务器文件共享场景下反而更省钱,因为服务器之间通过内网访问NAS不产生流量费

省钱建议:

  • 如果文件总量小于1TB,选择通用型NAS即可,按需付费
  • 文件量稳定后,可以购买存储包(100GB存储包96元/年),比按量付费便宜约10%
  • 只把需要共享的目录(uploads、插件上传的附件)放NAS,WordPress核心代码放本地磁盘,降低NAS吞吐费用
避坑提示
  • 权限问题:挂载NAS后,确保Web服务器进程有读写权限,否则上传会失败
  • 单点故障:虽然NAS本身是高可用的,但挂载点故障会影响所有服务器。生产环境建议配置多个挂载点
  • 性能瓶颈:通用型NAS吞吐上限150MB/s,极高并发场景可能不够,需要升级到性能型NAS

开始使用

如果你对 阿里云文件存储 NAS 感兴趣,可以访问官方页面查看详细配置和价格信息。

查看详细信息 →

常见问题

NAS和OSS到底该选哪个?

多台服务器需要实时文件同步选NAS,静态资源CDN加速选OSS。两者也可以结合使用。

NAS会不会成为性能瓶颈?

中小流量网站(5万PV/天以内)不会,NAS在同VPC内延迟1ms左右。极高并发场景建议压测验证。

能不能用脚本同步替代NAS?

可以,但延迟高且不可靠。用户上传后可能要等几分钟才同步,体验差。

总结

WordPress多服务器负载均衡,文件同步是绕不开的问题。NAS共享存储方案改造成本低、实时同步、横向扩展容易,月成本只要30元左右,非常适合流量增长期的中小站点。我们从单机扛不住到3台服务器集群,整个架构升级只花了半天时间,现在流量再翻倍也不慌了。如果你也遇到类似问题,强烈推荐试试NAS方案。