宝塔面板 Nginx 反向代理配置教程

把内网服务(比如 3000 端口的 Node 应用)通过 80 端口对外提供,反向代理是最稳的做法。

一、最简配置

宝塔 → 网站 → 添加站点 → 设置 → 反向代理:

项 值
代理名称 随便填
目标 URL http://127.0.0.1:3000
发送域名 $host

保存即可。

二、手动写配置(更灵活)

在站点的 Nginx 配置文件里加:

location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $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

上面那段不支持 WebSocket,会报 400。补上这两行:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

四、真实 IP 问题

代理之后,后端拿到的 remote_addr 全是 127.0.0.1。必须靠上面那几个 X-Forwarded-* 头传递。

后端读取方式:

语言 取法
Node/Express req.headers['x-forwarded-for']
PHP $_SERVER['HTTP_X_FORWARDED_FOR']
Nginx 日志 改 log_format

五、常见 502 排查顺序

  1. 后端服务起没起?curl 127.0.0.1:3000
  2. 防火墙放行了吗?
  3. SELinux 拦了吗?(CentOS)
  4. 看 Nginx 错误日志:/www/wwwlogs/站点名.error.log

常见问题

Q:静态资源 404?
A:代理会把所有请求转发过去,包括静态文件。要么在后端处理,要么加 location 单独匹配。

Q:改完配置不生效?
A:宝塔改完要重载 Nginx:nginx -t && nginx -s reload。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容