宝塔双11:分享抽 iPad 等好礼,100% 中奖!查看活动
当前位置:论坛首页 > Linux面板 > 建议

宝塔 Nginx 反向代理详细配置教程:内网服务对外访问实战...

发表在 Linux面板昨天 11:28 [复制链接] 1 52


宝塔面板的 Nginx 反向代理,本质上是让一台具备公网 IP 的服务器充当“中间人”,将外部请求转发到内网或本机指定端口的服务上,再把响应回传给访客。配置流程只需三步:在内网跑通源站服务、在宝塔创建空壳站点并解析域名、在站点设置中添加反向代理规则指向内网地址。真正的难点不在“配通”,而在配通之后避开车缓存、WebSocket 握手失败、路径斜杠错位这几个高频坑。
7.jpg
一、前置条件:先把源站跑起来
反向代理的前提是内网确实有一个可访问的服务。假设你在局域网某台机器上运行了一个 Node 项目,内网访问地址为 `http://192.168.1.100:3000`,用内网浏览器打开能看到内容,说明源站正常。如果你的源站是 WordPress 或 Typecho 这类网站程序,源站绑定的域名必须与即将对外使用的域名一致,否则反代后页面样式和图片会全部丢失。纯 API 或 Node 服务则可忽略此步。
二、宝塔端配置:三步完成代理
登录宝塔面板,进入“网站” → “添加站点”,域名填写你准备对外使用的域名(提前将该域名解析到这台宝塔服务器的公网 IP),PHP 版本选择“纯静态”。建站后先访问域名确认能看到宝塔默认页,排除解析和监听问题。
进入该站点设置,点击“反向代理” → “添加反向代理”。代理名称随意填写,目标 URL 填入内网服务的完整地址,协议头必须带上(如 `http://192.168.1.100:3000`)。发送域名保持默认 `$host` 即可,大多数内网服务无需修改。保存后访问你的域名,应当直接看到内网服务的界面。
三、高频坑位与解决方案
坑一:代码更新了,页面还是旧的。宝塔安装的 Nginx 默认开启了 proxy 缓存,缓存文件堆积在 `/www/server/nginx/proxy_cache_dir`。解决方式:进入“软件商店” → Nginx 设置 → 配置修改,找到 `proxy_cache` 相关行并在前面加 `#` 注释,或直接清空缓存目录后重载 Nginx。新手建议先关闭缓存,业务稳定后再按需开启。
坑二:WebSocket 服务连不上。如果反代的是实时推送类服务(在线终端、聊天面板),普通配置会一直转圈。需在反向代理的“自定义高级配置”中添加两行:`proxy_http_version 1.1;` 和 `proxy_set_header Upgrade $http_upgrade;`,同时设置 `proxy_set_header Connection "upgrade";`。缺少 `proxy_http_version 1.1` 是 WebSocket 握手失败最常见的原因。
坑三:路径分流时 404。当一台服务器上跑多个服务、靠路径区分时(如 `/api/` 走 8081,`/` 走 3000),`proxy_pass` 结尾有没有斜杠决定路径是否被改写。带斜杠(`http://127.0.0.1:8081/`)会剥掉 location 匹配的前缀,不带斜杠则原样转发。上线前用 `curl` 直连后端对比返回码,确认路径符合后端路由设计。
四、服务端选型建议
反向代理对服务器的要求集中在网络质量与稳定性上,而非极致算力。如果你需要一台长期在线的公网入口机来承载反代流量,RakSmart 硅谷 VPS 是务实的选择:2核4G / 50G NVMe 配置年付低至 $39.9,NVMe 固态保障 Nginx 处理并发请求时的 IO 响应。如果运维操作主要在国内进行,可选择大陆优化 VIP 线路,国内 SSH 登录与后台管理延迟更低;若追求回国路由的极致稳定,精品 CN2 线路的回程丢包率控制更优,适合对网络抖动敏感的生产环境。
使用道具 举报 只看该作者 回复
发表于 昨天 11:31 | 显示全部楼层
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表