Appearance
问题现象
在宝塔面板或其他 Nginx 管理工具中为站点添加反向代理时,弹出错误提示: 伪静态/nginx主配置/vhost/文件已存在全局反向代理 或保存反向代理配置失败。
根本原因
- 伪静态与反向代理规则冲突:站点原先配置了 ThinkPHP 等伪静态规则,Nginx 配置文件中已存在针对
location /的try_files或rewrite重定向指令,与反向代理的location /发生冲突。 - 重复添加反向代理:站点配置文件中已存在
proxy_pass相关配置,再次通过宝塔可视化界面添加导致配置块重复。 - 全局 Nginx 配置冲突:在
nginx.conf主配置或全局包含文件中定义了同名的反向代理 upstream 或路径映射。
解决步骤
清理现有伪静态规则
- 打开宝塔面板 -> 网站 -> 点击目标站点 -> 伪静态。
- 将伪静态内容清空或选择“0.当前(无规则)”,点击保存。
- 确保站点配置文件中不再有针对根路径
/的冲突重定向规则。
标准反向代理配置
EBAOZU V4 基于 Swoole 运行,需将 HTTP 与 WebSocket 请求代理到后端 Swoole 端口(默认 20697)。请在站点 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;
# 客户端真实 IP 透传
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;
# 支持 WebSocket 升级
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 自定义请求头透传(JWT 鉴权)
proxy_set_header Authori-zation $http_authori_zation;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico|svg|woff|woff2|ttf|eot)$ {
root /www/wwwroot/your-project/public;
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
root /www/wwwroot/your-project/public;
expires 12h;
access_log off;
}测试与重载 Nginx
在命令行执行配置测试并重载:
bash
nginx -t
nginx -s reload若提示 syntax is ok 和 test is successful,则反向代理已成功生效。