网站502错误原因排查解决方案:网站502错误原因排查全攻略

认清502错误:你的网站和服务器之间断了线

很多新手站长打开网站看到白屏或“502 Bad Gateway”时容易慌。
其实502本质是你的Web服务器(如Nginx或Apache)成功接收了请求,但在往后端应用服务器(如PHP-FPM)转发时,对方没有及时响应。
原因通常是PHP服务挂了、资源耗尽、代理配置错误或超时设置过短。
排查方向很明确:先看服务是否活着,再看配置是否合理,最后从日志里抓线索。

第一步:检查PHP-FPM或Apache是否在运行

90%的502都因PHP-FPM(负责处理PHP脚本的进程管理器)意外停止。
登录服务器后执行:

# 查看PHP-FPM状态
systemctl status php-fpm
# 如果没启动,看到红色dead字样
# 立即启动并设置开机自启
systemctl start php-fpm
systemctl enable php-fpm

如果你用的是Apache mod_php,则检查Apache:

systemctl status httpd

重点:启动后立刻刷新网站,如果恢复,说明问题根源就是PHP服务挂了。
如果还没好,继续下一步。

第二步:核对Web服务器反向代理配置

502常见于反向代理将请求转发到错误的地址或端口。
以Nginx为例,检查站点配置文件(通常在/etc/nginx/sites-available/或/usr/local/nginx/conf/):

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;   # 确保地址和端口与PHP-FPM监听一致
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

如果PHP-FPM配置监听的是Unix socket而不是端口,比如listen = /var/run/php-fpm/php-fpm.sock,那么Nginx里也要换成:

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

验证:修改后执行nginx -t检查语法,无报错后systemctl reload nginx,再刷新网站。

第三步:从日志里揪出真实报错

如果服务都正常,配置也没改过,那就要看日志。
日志路径一般在:

  • Nginx 错误日志:/var/log/nginx/error.log
  • PHP-FPM 慢日志:/var/log/php-fpm/slow.log
  • PHP-FPM 错误日志:/var/log/php-fpm/error.log

用tail命令实时查看最新报错:

tail -f /var/log/nginx/error.log

常见的日志线索:

  • connect() failed (111: Connection refused) while connecting to upstream —— PHP-FPM没监听该端口
  • upstream timed out (110: Connection timed out) while reading response header —— PHP执行超时,需要调整fastcgi_read_timeout或request_terminate_timeout
  • Primary script unknown —— 文件路径不对,检查root和fastcgi_param SCRIPT_FILENAME

避坑指南:三个最容易忽略的配置点

  1. 内存耗尽:PHP-FPM子进程太多吃满内存,导致新请求502。调整pm.max_children,比如VPS 1G内存设为5-10。查看当前进程数:ps aux | grep php-fpm | wc -l。
  2. 防火墙或SELinux:某些云服务器开启了SELinux,阻止Nginx连接PHP-FPM socket。临时关闭:setenforce 0,如果解决需永久配置或放行规则。
  3. 代理缓冲区太小:如果上游返回内容较大,proxy_buffer_size或fastcgi_buffer_size太小也会502。在http或location块增加:
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

重启Nginx测试。

验证修复效果:从测试页到线上功能

修复后别只看首页,建议逐个测试以下场景:

  • 刷新首页和几个深层页面
  • 登录后台(通常涉及PHP Session)
  • 提交表单或执行查询
  • 用curl -I yoursite.com查看返回状态码是否为200

如果问题偶尔复现,
建议在PHP-FPM配置中开启慢日志记录:slowlog = /var/log/php-fpm/slow.log,
并设置request_slowlog_timeout = 5s,
这样可以找出哪些PHP脚本执行过慢导致超时。

总结:502不是大毛病,按“查服务→看配置→读日志→调参数”这个顺序走一遍,基本都能解决。
怕的是乱改一气,建议每次只改一个地方、验证一次效果。
如果你按上述步骤仍未修复,下次可以专门讲如何通过调整PHP-FPM进程池彻底根治502。

分享到:
上一篇
宝塔面板手机APP远程运维方法:宝塔面板手机APP远程运维指
下一篇
网站503服务不可用修复教程指南
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意