宝塔面板502错误排查 从Nginx到PHP逐层定位

KLWIN 运维组 2026-07-07 约 5 分钟读完 约 1,524 字 249 次阅读
宝塔面板502错误排查 从Nginx到PHP逐层定位
宝塔面板502错误排查 从Nginx到PHP逐层定位

502 的意思是"网关收到了请求,但上游没有正常响应"。在宝塔环境里,上游通常是 PHP-FPM。所以 502 的本质是:Nginx 正常,PHP 或它依赖的东西出了问题。

排查要一层层往下走,不要一上来就重启服务器。

第一层:确认是全局还是单站

打开同一台服务器上的其他站点。如果都 502,问题在 PHP 或系统层;如果只有这一个站 502,问题在这个站的配置或代码。

第二层:看 PHP-FPM 是否在跑

# 查看 PHP-FPM 进程
ps aux | grep php-fpm

# 查看端口(默认 9000)
netstat -lntp | grep 9000

进程不在,说明 PHP 挂了。先看日志:/www/server/php/81/var/log/php-fpm.log,通常是内存不足被杀,或者配置错误导致启动失败。

第三层:看 Nginx 错误日志

tail -100 /www/wwwlogs/你的域名.error.log

日志里会写清具体原因,常见的几种:

  • connect() failed (111: Connection refused):PHP-FPM 没启动或端口不对。
  • upstream timed out:PHP 执行超时,通常是代码卡住或数据库慢。
  • recv() failed (104: Connection reset by peer):PHP 进程崩溃,多半是内存或段错误。
  • No such file or directory:站点根目录配置错了。

第四层:内存与磁盘

free -h
df -h

内存耗尽时,系统会杀进程,PHP-FPM 首当其冲。磁盘写满时,PHP 无法写日志和临时文件,也会 502。

这两种情况在"运行一段时间后突然 502"的场景里占比很高。

第五层:PHP 配置

三个参数经常出事:

参数作用建议值
pm.max_children最大子进程数按内存算:内存MB ÷ 单进程60MB
request_terminate_timeout单请求超时60-300 秒
memory_limit单进程内存上限128-256M

pm.max_children 设太大,内存被吃光;设太小,并发一高就排队。按"可用内存 ÷ 60MB"估算比较稳。

五种高频原因与处理

1. 内存不足

升配、减少 PHP 进程数、关掉不用的服务(如没用的 MySQL 实例)。

2. 数据库连接失败

PHP 连不上 MySQL 会超时,表现为 502。检查 MySQL 是否在跑、连接数是否打满、密码是否被改。

3. 慢查询拖死进程

某个页面查询特别慢,占满 PHP 进程。开慢查询日志定位,加索引或改代码。

4. 代码死循环或内存泄漏

表现为 CPU 飙高、进程数打满。用 top 看是哪个进程,再定位到页面。

5. 被攻击

大量请求打到动态页面,PHP 进程被占满。看访问日志的 IP 分布,加防火墙限速。

应急处理顺序

  1. 重启 PHP-FPM(systemctl restart php-fpm-81 或面板操作),先恢复访问。
  2. 看日志定位原因,别重启完就结束。
  3. 如果是内存问题,临时加 swap 或降进程数。
  4. 如果是攻击,先上防火墙再谈优化。

从外到内逐层看

先看 Nginx 错误日志,是连接 PHP-FPM 失败还是超时;再看 PHP-FPM 进程数和内存;最后看慢查询和磁盘。重启只能暂时缓解,日志才告诉你根因。

502 频繁出现,优先查内存和进程池,不要先怪程序。

PHP-FPM 进程数按内存算,不要照抄网上的数字。进程满时先看慢查询和内存,再考虑加机器。

常见问题

重启后好了,过一会又 502

说明是资源问题而非配置错误。重点查内存、进程数、慢查询。

只有后台 502,前台正常

后台通常查询更重、执行时间更长。调大后台的超时限制,或优化后台的列表查询。

502 和 504 有什么区别

502 是上游拒绝或崩溃,504 是上游超时。504 更多指向慢,502 更多指向挂。

日常预防靠监控和备份,配置见宝塔计划任务。

K

KLWIN 运维组

KLWIN康林旺 内容团队,长期处理企业官网建设、CMS 模板开发与搜索优化的实际项目。文章里的数据和方法,来自交付过程中的记录,不引用未经核实的结论。

上一篇百度快照不更新 原因判断与处理办法
下一篇 谷歌移动优先索引 移动版才是主版本
RELATED

继续阅读

客服头像
正在连接...
👋
开始聊天前,请告诉我们您的称呼
客服 正在输入