我的知识记录

后端服务崩溃导致502?如何检查PHP或数据库进程状态?

502 Bad Gateway 通常发生在以下场景:
  • PHP-FPM/Nginx进程崩溃或无响应
  • 数据库连接耗尽或崩溃
  • 服务器资源(CPU/内存)耗尽
典型表现
  • 间歇性出现502错误
  • 服务完全不可用
  • 伴随服务器负载飙升

检查步骤

1. PHP进程状态检查


 
bash
# 查看PHP-FPM进程是否存活 ps aux | grep php-fpm # 检查PHP-FPM错误日志(路径可能不同) tail -n 50 /var/log/php-fpm.log
关键指标
  • 进程是否存在(至少应有master+worker进程)
  • 日志中是否有WARNING: [pool www] seems busy等资源不足提示

2. 数据库状态检查


 
bash
# MySQL状态(需权限) systemctl status mysql # 或 service mysql status mysqladmin -uroot -p ping # 测试数据库响应 # 查看连接数 mysql -uroot -p -e "SHOW STATUS LIKE 'Threads_connected';"
风险点
  • 连接数接近max_connections值时会出现拒绝连接
  • 锁等待超时可能导致雪崩

3. 服务器资源检查


 
bash
top # 实时资源占用 free -h # 内存余量 df -h # 磁盘空间
阈值参考
  • CPU持续>80%
  • 内存剩余<10%
  • 磁盘空间<5%

应急恢复方案

操作 命令/方法 适用场景
重启PHP服务 systemctl restart php-fpm 进程僵死但资源充足时
重启数据库 systemctl restart mysql 数据库无响应且可接受短暂中断
限流保护 Nginx速率限制或降级策略 突发流量导致资源耗尽

根治建议

  1. 进程监控:部署Supervisor或k8s健康检查
  2. 日志分析:ELK收集PHP/DB/Nginx错误日志
  3. 压力测试:提前用JMeter模拟高并发场景
📌 生产环境特别注意
  • 避免直接重启数据库(可能引发数据损坏)
  • 502期间保留现场信息(如strace -p <PID>

后端服务崩溃导致502?如何检查PHP或数据库进程状态?

标签:502错误- PHP进程- 数据库状态- 服务监控

更新时间:2025-06-02 14:11:21

上一篇:网站PHP开启调试模式如何查看SQL语句?

下一篇:网站连接数据库配置如何优化?数据库连接池设置?