# 宝塔面板网站出现 502 Bad Gateway 怎么排查？PHP 并发与日志定位

> 排查宝塔 502 错误按 4 步走：先看站点错误日志确认是连接拒绝（PHP 未启动）还是超时（进程池打满），再检查 PHP-FPM 运行状态与服务器内存占用，最后结合宝塔企业版「网站监控报表」与「WAF 防火墙」拦截导致进程耗尽的恶意 CC 请求。

- 分类: 面板配置
- 发布: 2026-10-14
- 更新: 2026-10-24
- 原文: https://pay.baota.in/article/bt-panel-502-fix-notes

## 为什么宝塔面板上的网站会报 502 Bad Gateway？

在宝塔 LNMP 架构中，用户请求先到达 Nginx，再由 Nginx 通过 `unix:/tmp/php-cgi-xx.sock` 转发给后端的 PHP-FPM 进程处理。当 **PHP-FPM 服务停止运行、PHP 子进程全部被慢查询卡死，或者遭遇恶意 CC 攻击瞬间打满并发上限**时，Nginx 拿不到响应就会直接向浏览器返回 `502 Bad Gateway`。

## 4 步快速定位并修复宝塔 502 故障

1. **第一步：看站点错误日志定方向**
   - 打开宝塔面板「网站 → 点击报错站点 → 日志 → 错误日志」。
   - 若提示 `connect() to unix:/tmp/php-cgi-*.sock failed (111: Connection refused)`：说明对应版本的 PHP 服务已停止或崩溃，立即去「软件商店 → 已安装」重启或修复该 PHP 版本。
   - 若提示 `Resource temporarily unavailable` 或 `upstream timed out`：说明 PHP 并发子进程已被占满。
2. **第二步：检查服务器内存与调整 PHP 性能配置**
   - 在面板首页查看内存与 CPU 占用。若内存耗尽触发系统 OOM 杀掉了 PHP 或 MySQL 进程，需先释放内存或增加 Swap 虚拟内存，再在「PHP 设置 → 性能调整」中选择与服务器内存匹配的并发方案。
3. **第三步：用企业版「网站监控报表 + WAF」拦截恶意 CC 流量**
   - 很多时候服务器配置明明够用却频繁 502，是因为有恶意爬虫或攻击者在高频刷动态搜索页或接口。打开宝塔专业版/企业版**「网站监控报表」**找出请求量暴增的异常 IP 与路径，并在**「Nginx 网站防火墙（WAF）」**中开启 CC 防护，将恶意流量挡在 PHP 之外。
4. **第四步：开启宝塔计划任务进程守护**
   - 可在计划任务或企业版任务管理器中配置 PHP/MySQL 服务状态监控，异常退出时自动拉起，并配合[宝塔网站监控报表](/article/bt-monitor-visitors-and-spiders)持续观察状态码分布。

## 依据与适用范围

- 官方配套安装与无损升级教程文档: 本站配套的安装与升级实操文档为 https://baota.in/tutorial.html，包含宝塔 Linux 企业版/专业版、Windows 企业版/专业版及 aaPanel PRO 版的全新安装（3 步）与免费版无损升级（2 步）标准命令。
  来源: https://baota.in/tutorial.html
- 面板版本号与授权状态核对: 安装或执行升级脚本后，可在面板左上角首页状态栏或「面板设置」页核对当前版本号（Linux v13.1.0 / Windows v8.5.2 / aaPanel v8.0.7）及企业版/专业版授权状态。
  来源: https://baota.in/tutorial.html
- 企业版与专业版核心插件矩阵: 开通宝塔企业版或专业版授权后，可在面板「软件商店 → 专业版插件 / 企业版插件」中直接安装与管理专属插件，包括网站防火墙（Nginx/Apache WAF）、网站防篡改、网站监控报表、企业级防灾备份、数据同步工具、系统加固、木马查杀、负载均衡等。
  来源: https://docs.bt.cn/
- 本站产品覆盖与永久授权服务: 本站提供宝塔永久专业版与企业版、Linux 专业版与企业版、Windows 专业版与企业版以及国际英文版 aaPanel PRO 的授权开通、订单查询与可换 IP 自助换绑服务。绑定服务器公网 IPv4 后即可解锁对应版本的专业版与企业版插件功能。
  来源: https://pay.baota.in/

## 常见问题

### 502 Bad Gateway 和 504 Gateway Time-out 有什么区别？

502 通常是后端 PHP-FPM 未运行、进程池满载拒绝连接或异常中断；504 则是连接已建立但 PHP 脚本执行时间（如慢 SQL 或外部接口调用）超过了 Nginx 等待超时时间。

### 把宝塔 PHP 性能调整里的 max_children 调得越大越好吗？

不是。每个 PHP-FPM 子进程大约消耗 20MB–60MB 内存，盲目调大超过物理内存上限会导致服务器内存耗尽死机，应根据实际内存大小按面板推荐档位设置，并用 WAF 拦截无效请求。

