先判断是不是 502
现象:浏览器能打开部分页面,但后台或文章页偶发报错 `HTTP ERROR 502`。
恢复架构

顺序:页面刷新 → 重进后台 → 检查 PHP/Nginx → 检查插件冲突 → 恢复可用后再优化。
5分钟恢复 SOP
- 先刷新当前页面并重开 `/wp-admin/edit.php`
- 若仍失败,重启 PHP-FPM 与 Nginx
- 查看最近错误日志(5-10 分钟窗口)
- 暂停高风险插件,逐个恢复
- 确认站点可访问后立即做一次备份
事后优化
- 减少高频写操作
- 固定每周一次健康巡检
- 记录故障-原因-修复,形成手册
常见误区
- 只重启不看日志,问题会反复
- 高峰时段做大规模插件变更
- 没有恢复预案就直接升级核心组件
附:值班手册模板
记录格式:故障时间、现象、影响范围、临时恢复动作、根因、长期修复。
系统架构说明(为什么会 502)
在个人博客场景中,502 常见于 Nginx ↔ PHP-FPM 或 Nginx ↔ 上游应用 链路异常。可按下图理解:
- 浏览器请求到 Nginx
- Nginx 转发到 PHP-FPM / Apache
- 上游超时、崩溃、socket 断开时,Nginx 返回 502
排障步骤(按优先级执行)
Step 1:先看 Nginx 错误日志
sudo tail -n 200 /var/log/nginx/error.log
重点关注:connect() failed、upstream timed out、no live upstreams。
Step 2:确认 PHP-FPM 存活与负载
sudo systemctl status php8.2-fpm
sudo journalctl -u php8.2-fpm -n 200 --no-pager
若频繁 OOM 或 worker 不足,先恢复服务再调参数。
Step 3:验证站点配置与 FastCGI 参数
sudo nginx -t
sudo systemctl reload nginx
同时检查 fastcgi_pass 指向是否正确(unix socket 或 127.0.0.1:9000)。
Step 4:隔离插件/主题问题
- 临时停用高风险插件(缓存、安全、重写类)
- 切换到默认主题做 A/B 验证
- 对比恢复前后日志变化
Step 5:建立“防再发”基线
- 启用定时备份与版本化回滚点
- 设置监控:5xx 比例、FPM 活跃进程、CPU/内存
- 每次更新后做 5 分钟健康检查
模块/分类优化
本篇属于“故障恢复 + 运维实践”,建议保留分类:服务器运维 + 计算机技术;移除“建站实战”以减少重叠。