宝塔面板反向代理怎么配?把后端服务映射到域名的完整配置
把 Node、Java、Python 这类后端服务用域名访问,不用改代码、不用手动改 Nginx 配置,在宝塔面板里加一条反向代理规则就行:进入网站 → 站点设置 → 反向代理,点「添加反向代理」,目标 URL 填后端服务的地址,保存后访问域名就能看到后端服务的内容。
反向代理做了什么
反向代理是站在用户和后端服务之间的「中间人」:用户请求先到反向代理服务器,它根据 URL 等信息把请求转发给后端真正处理请求的服务,后端返回响应后,反向代理再转回给用户。对用户来说,他感觉自己在直接访问那个域名,实际请求已经转发到了后端。
这套机制正好解决「后端服务跑在某个端口、想用域名访问」的场景,官方文档明确提到它适用于后端服务、API 网关与 Node.js 项目。
第一步:准备好站点和域名
反向代理规则是挂在「站点」上的,所以先确认两件事:
- 后端服务已经在服务器上启动,并监听某个端口(比如 Node 服务跑在
3000端口)。 - 宝塔里已经创建了站点,并且绑定好你要用的域名。
域名绑定在站点的「域名管理」里完成,添加完域名后记得去 DNS 服务商补解析记录,让域名解析到服务器 IP。
第二步:进入站点的反向代理配置页
登录宝塔面板,点左侧导航栏的 网站,进入网站列表页面,点击要管理域名的站点:

在弹出的窗口里,点左侧导航栏的 反向代理,进入反向代理配置页面:

第三步:添加反向代理规则
点 添加反向代理,填规则:

举个官方文档里的例子:你的后端服务地址是 http://127.0.0.1:3000/,你想把它反向代理到网站 https://www.bt.cn/。这样设置后,访问 https://www.bt.cn/ 时,页面显示的就是 http://127.0.0.1:3000/ 的内容。
关键字段怎么填
官方文档对「添加反向代理」里的字段有明确说明:
| 字段 | 说明 |
|---|---|
| 代理目录 | 访问这个目录时,会把目标 URL 的内容返回并显示(需要开启高级功能) |
| 目标 URL | 要代理的后端服务地址,必须是一个可正常访问的 URL,否则会返回错误 |
| 发送域名 | 把域名添加到请求头里传给后端,默认是目标 URL 的域名;设置不当可能导致代理无法正常运行 |
| 内容替换 | 只在用 Nginx 时提供,最多可添加 3 条替换内容,不需要替换就留空 |
目标 URL 是最关键的一项:它必须真实可访问,填错或后端没启动都会报错。发送域名一般按默认即可,除非你的后端对请求头里的 Host 有特殊要求。
别忘了这两点
- 配置反向代理后,【访问限制】中相应路径的规则会失效,需要单独留意该路径的访问控制。
- 反向代理功能还包含 WebSocket 支持与缓存设置,跑 WebSocket 长连接应用或需要给静态资源加速时用得上,具体配置以面板界面为准。
一句话总结
宝塔面板配反向代理,顺序是:确认后端服务已启动 → 站点绑定好域名 → 站点设置进「反向代理」→ 添加反向代理,目标 URL 填后端地址 → 保存后用域名访问。核心就一个字段——目标 URL 填对,其余按默认。
信息来源
常见问题
反向代理和目标 URL 到底是什么关系?
目标 URL 是后端服务真实监听的地址,例如 http://127.0.0.1:3000/;反向代理规则建立后,用户访问你的域名时,面板会把请求转发到目标 URL,再把后端返回的内容转回给用户。
后端服务跑在某个端口,怎么用域名访问?
先在宝塔创建好站点并绑定域名,再进入该站点的「反向代理」,点「添加反向代理」,目标 URL 填后端服务的地址(如 http://127.0.0.1:3000/),保存后即可通过域名访问。
目标 URL 填错了会怎样?
目标 URL 必须是一个可正常访问的地址,否则会返回错误。填之前建议先在服务器上确认后端服务已启动并监听对应端口。
发送域名一栏要不要填?
它会把域名添加到请求头里传给后端,默认是目标 URL 的域名。如果设置不当可能导致代理无法正常运行,一般按默认即可,除非后端对 Host 头有特殊要求。
配置反向代理后,原来的访问限制还有效吗?
设置反向代理后,【访问限制】中相应路径的规则会失效,需要额外留意该路径的访问控制。
反向代理支持 WebSocket 和缓存吗?
宝塔反向代理功能包含 WebSocket 支持与缓存设置,适合 WebSocket 长连接应用和需要加速静态资源的场景,具体配置以面板界面为准。