Skip to content

问题现象

通过域名访问系统首页、后台或 API 接口时,页面显示 502 Bad Gateway


根本原因

502 Bad Gateway 是 Web 服务器(Nginx)返回的标准 HTTP 状态码,表示作为反向代理网关的 Nginx 尝试连接后端上游服务器(Swoole 服务监听的 127.0.0.1:20697)时连接被拒绝或超时。

最常见的原因包括:

  1. Swoole 服务未启动或崩溃退出
  2. Swoole 监听端口与 Nginx 反向代理配置的端口不一致
  3. Swoole 进程遭遇致命错误后陷入反复重启(Crash Loop)

解决与排查流程

第一步:检查 Swoole 服务是否正在运行

在终端中执行以下命令查看是否有 Swoole 进程存在:

bash
ps -ef | grep "php think swoole"
  • 若无相关进程:说明 Swoole 服务未启动。进入 Supervisor 管理器启动守护进程,或在命令行执行 php think swoole
  • 若 Supervisor 状态显示 FATAL / BACKOFF:请以前台命令运行 php think swoole 查看启动崩溃的具体报错(常见原因为缺少扩展、proc_open 未解禁或数据库/Redis 无法连接)。

第二步:检查端口配置是否一致

  1. 查看 Swoole 实际配置端口:打开 config/swoole.php.env,确认 server.port(如 20697)。
  2. 查看 Nginx 反向代理配置端口:打开站点 Nginx 配置,检查 proxy_pass 指向的端口:
    nginx
    proxy_pass http://127.0.0.1:20697;
  3. 确保两者端口号完全一致

第三步:检查端口监听状态

在终端中检查该端口是否处于监听状态:

bash
netstat -tlpn | grep 20697
lsof -i :20697

若端口处于 LISTEN 状态,再次刷新浏览器即可正常访问。

承信租多门店租赁商城系统官方文档