WordPress 部署与运维实战:从部署认知到故障排查
从部署结构、迁移和缓存讲到多站资源控制与故障排查,串起一套 WordPress 部署与运维实践。
这组文章来自几次不同阶段的 WordPress 实践:从宝塔迁到 1Panel,重新认识 Docker 部署,给多站环境接入缓存,再到小规格 VPS 的资源收敛和后台 524 排查。现在把它们整理为一个专题,章节按这条运维链路排列。
一次请求经过哪些组件
在 1Panel 环境里,浏览器发出的请求通常先到 OpenResty。传统部署由 OpenResty 把 PHP 请求交给 PHP-FPM,PHP 再读取 WordPress 文件、查询数据库并生成页面;一键部署的容器化 WordPress 则多了一层反向代理,OpenResty 把请求转给 WordPress 容器,由容器内的 Web 与 PHP 环境继续处理。
Redis 不负责接收网页请求。启用对象缓存后,WordPress 在生成页面的过程中会先从 Redis 读取部分数据库查询结果,未命中时再访问 MySQL 或 MariaDB。页面缓存处在更靠外的位置,它保存已经生成的 HTML,让部分匿名访问不用再次运行 PHP。
浏览器 ↓OpenResty ↓PHP-FPM 或 WordPress 容器 ├─ WordPress 文件、主题与插件 ├─ MySQL / MariaDB └─ Redis 对象缓存实际部署未必与这张简图完全一致,但排查问题时可以沿请求方向逐层确认:域名和证书是否正常,OpenResty 是否把请求交给了正确的后端,PHP 是否可用,数据库和 Redis 是否能从当前运行环境访问。
传统部署和容器部署
传统部署的网站文件直接放在主机目录中,OpenResty、PHP 和数据库之间的关系比较直观。容器部署把应用及其运行环境隔离起来,网站数据通过挂载目录持久保存,组件之间通过端口映射或 Docker 网络通信。
这一区别会影响文件位置、配置生效方式、组件使用的主机名和故障排查路径。主机上的 localhost 与容器里的 localhost 指向不同环境,容器访问宿主机或其他容器时,也不能直接照搬传统部署里的连接地址。
这六章如何衔接
前两章从部署结构和一次真实迁移开始,适合刚换到 1Panel 时阅读。第三、四章分别解释页面缓存与对象缓存的分工,并记录 Redis 在多站环境里的配置和隔离方式。第五章把范围扩展到整台 2C4G VPS,处理 PHP-FPM、MariaDB、OPcache、页面缓存和 swap 的资源配置。第六章是这套环境上线后的故障复盘,问题从 WordPress 后台 524 一直追到容器环回和 Docker 出网。
只遇到某个具体问题时,可以直接打开相应章节;如果正在搭建或迁移环境,按顺序阅读更容易理解后面命令所在的网络和部署背景。
延伸阅读
这六章围绕目前的 1Panel 部署与运维链路整理。另有几篇文章保留为独立记录:
- 1C1G 服务器搭建 WordPress 插件开发环境,记录手动搭建 LEMP 环境的另一条路线
- 宝塔 WordPress 优化记录,保留早期宝塔环境下的调整过程
- WordPress PHP-FPM 排查记录、MySQL 生命周期问题记录和文章加载异常记录,属于当时环境下的单次故障记录























