宝塔面板Nginx反向代理配置详解
什么是 Nginx 反向代理
反向代理可以简单理解为:用户访问你服务器的某个域名,Nginx 把请求转发给另一个后端服务(比如本地运行的 8080 端口或另一台服务器),再把结果返回给用户。
这样你就能用一个域名统一对外提供服务,而真实服务可以隐藏在内部。
配置前需要确认的事
在动手之前,先检查这三样东西:
- 宝塔面板已安装:确保你已经登录宝塔面板,并且版本不太老(建议 7.9 以上)。
- 网站已添加:先添加一个站点(域名可以是你自己的,也可以是临时测试域名)。不需要上传文件,域名解析可以先不用。
- 目标服务可访问:你要代理的后端服务(比如本地
127.0.0.1:8080)必须能正常响应,否则配置后也会报 502。
宝塔面板反向代理操作步骤
- 登录宝塔面板,点击左侧 网站。
- 找到你之前添加的站点,点击右侧 设置。
- 在弹出的窗口中选择 反向代理(有些旧版本叫“代理”)。
- 点击 添加反向代理。
- 填写以下关键项:
- 代理名称:任意名称,方便识别即可(比如
webapp)。 - 目标 URL:后端服务的完整地址,例如
http://127.0.0.1:8080或http://192.168.1.100:3000。 - 发送域名:默认是
$host,一般不用改。如果后端需要知道原始域名,可以保持默认。 - 高级功能:根据需要开启“高级功能”如缓存、域名替换等,新手建议保持默认即可。
- 点击 添加。
添加完成后,Nginx 会自动生成一段配置。
如果你想手动查看或微调,可以在 配置文件 中找到 include /www/server/panel/vhost/nginx/proxy/你的域名/*.conf; 这类引用语句。
常见报错与避坑指南
502 Bad Gateway:最常见。
原因一般是后端服务没启动、端口没对外开放,或者 Nginx 与后端之间网络不通。
检查方法:在服务器上用 curl http://127.0.0.1:8080 测试后端是否正常。
另外,如果后端是 HTTPS 但目标 URL 写成了 HTTP,也可能报错。
404 Not Found:通常是代理路径不对。
比如后端接口是 /api,但你在反向代理里没有设置 “目录名称” 或 “替换规则”。
可以在高级设置中勾选 内容替换 或调整 URL 重写。
SSL 证书问题:如果你代理的是另一个 https 服务,且它使用了自签名证书,宝塔默认会用 ssl_verify 验证,导致失败。
可以在反向代理的 高级功能 中关闭 SSL 验证。
端口已经被占用:有时候你监听 80 端口,但反向代理的目标端口可能也被其他服务占了。
先确保目标端口是空闲且对应的服务正在运行。
如何验证反向代理是否生效
配置完成后,直接在浏览器访问你绑定的域名。
如果看到后端服务的内容,配置就成功了。
也可以用 curl 命令测试:
curl -I http://你的域名
返回的头信息中一般会包含 Server: nginx 以及你后端应用的标识(如 X-Powered-By: Express)。
还可以在宝塔面板的 网站->设置->反向代理 中看“状态”是否为绿色正常。
如果你想要调试更多信息,可以临时开启 Nginx 的调试日志(生产环境记得关掉)。
在 软件商店->Nginx->设置->配置修改 中添加 error_log /var/log/nginx/error.log debug; 然后重启 Nginx,再访问一次,查看错误日志。
最后提醒:反向代理配置看似简单,但实际生产环境中端口、SSL、路径重写都可能踩坑。
建议先在本地或测试环境试跑一次,确认无异常再上线。
如果你遇到文中没提到的问题,可以检查 Nginx 错误日志(路径:/www/server/nginx/logs/error.log),大部分问题都能从日志里找到线索。