宝塔面板-访问域名/node接口404

0 阅读1分钟

Node.js + 宝塔面板 404 踩坑

精简记录Node.js+宝塔部署中「域名404」「反向代理后主页404」两大核心坑,附快速解决方案,避开同类问题。

📋 问题背景

  • 环境:服务器 + 宝塔面板 + Node.js + PM2 + Nginx
  • 需求:域名xxx.top访问Node接口(/api/goods/query),同时保留原站点主页
  • 问题:本地curl正常,域名404;配置反向代理后,接口正常、主页404

🕵️ 踩坑1:本地正常,域名访问404

问题

PM2显示服务在线,本地curl http://127.0.0.1:8080/api/goods/query正常,域名访问接口404。

根因

未配置Nginx反向代理,Nginx未将/api/请求转发至Node服务(8080端口)。

解决方案

宝塔面板添加反向代理,核心配置:

配置项填写内容
代理名称node-api
目标URLhttp://127.0.0.1:8080
目录/api/

image.png (图片:宝塔反向代理配置截图)

🕵️ 踩坑2:反向代理后,主页404

问题

接口正常访问,但域名主页https://xxx.top返回404。

根因

反向代理目录填为/(根目录),所有请求都被转发至Node服务,Node未配置根路由。

解决方案

编辑反向代理,将「目录」改为/api/,仅转发接口请求,不影响主页。

📌 核心避坑点

  • 反向代理目录必须填/api/(带末尾斜杠),避免路由拼接错误。
  • PM2「online」≠ 服务正常,需用lsof -i :8080确认端口监听。
  • 排障顺序:先本地curl验证,再配置反向代理,最后测试域名。

✅ 最终效果

  • https://xxx.top:正常访问原站点主页
  • https://xxx.top/api/goods/query:正常访问接口

其实这两个问题只需要解决一个地方,就是反向代理的目录