Appearance
问题现象
访问 EBAOZU 系统时,浏览器页面直接返回 500 Internal Server Error,或者在网络请求中接口响应 HTTP 状态码 500。
常见原因与排查流程
宝塔反向代理可视化编辑导致的配置被篡改
- 现象:在宝塔面板的【反向代理】列表中点击编辑或开启高级缓存后,宝塔自动在站点 Nginx 配置文件中追加了重复或不兼容的缓存与重定向指令,导致 Nginx 内部处理循环或代理崩溃。
- 排查与解决:
- 打开宝塔面板 -> 网站 -> 目标站点 -> 【配置文件】。
- 检查底部的反向代理代码块,移除宝塔自动追加的异常缓存块。
- 保留如下标准经过验证的反向代理配置:
nginx
location / {
proxy_pass http://127.0.0.1:20697;
proxy_http_version 1.1;
proxy_read_timeout 60s;
proxy_connect_timeout 60s;
proxy_redirect off;
# 请求头透传
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Authori-zation $http_authori_zation;
# 禁用代理缓存
add_header Cache-Control no-cache;
}后端 PHP 运行异常(应用级 500)
- 现象:Nginx 反向代理正常工作,但后端 Swoole 处理请求时抛出未捕获的 PHP 异常(如数据库连接失败、Redis 超时、语法错误或缺少扩展)。
- 排查步骤:
- 打开项目根目录下
.env文件,将APP_DEBUG = true开启。 - 重启 Swoole 守护进程:bash
supervisorctl restart ebaozu_v4 - 再次发起请求,查看接口返回的具体 PHP 错误堆栈信息。
- 查看
runtime/log/目录下的最新日志排查根本原因。 - 修复问题后,将
APP_DEBUG = false还原并重启 Swoole。
- 打开项目根目录下
Nginx 错误日志排查
若怀疑是 Nginx 自身引发的 500 错误,可查看 Nginx 错误日志定位:
bash
tail -n 100 /www/wwwlogs/你的域名.error.log