Files
hometown/docs/宝塔部署说明.md
2026-03-08 00:19:29 +08:00

5.2 KiB
Raw Blame History

宝塔面板部署说明

在宝塔面板中部署本项目:前端由 Nginx 提供静态资源,/api 反向代理到本机 Node 后端(默认端口 5599API 由 run.sh 或宝塔 Node 项目管理器保活。


一、环境准备

  1. 安装 Node.js(若未安装)
    宝塔 → 软件商店 → 搜索 Node 版本管理器Node.js → 安装,并在「设置」中安装 18 或 20 LTS。

  2. 项目目录
    将项目放到计划使用的路径,例如:
    /www/wwwroot/view.airtep.com/720yun-offline
    或任意目录,下面以 项目根目录 表示。


二、添加网站并设置根目录

  1. 宝塔 → 网站添加站点
  2. 域名:填你的访问域名(如 view.airtep.com),或 IP。
  3. 根目录:必须指向构建后的前端目录
    • 推荐:项目根目录/dist
      例如:/www/wwwroot/view.airtep.com/720yun-offline/dist
    • 这样访问域名时打开的是 dist/index.html,且与 /api 同源,无需改 api.config.json
  4. PHP 版本:选「纯静态」即可(不需要 PHP
  5. 创建站点后,先不关页面,接着配置反向代理。

三、配置 Nginx 反向代理(/api → 5599

  1. 网站 列表中找到刚添加的站点,点击 设置
  2. 左侧选 反向代理添加反向代理
  3. 填写:
    • 代理名称:随意,如 api
    • 目标 URLhttp://127.0.0.1:5599
    • 代理目录/api(表示只把 /api 开头的请求转给后端)
    • 发送域名:默认 $host 即可
  4. 保存后,宝塔会自动改写 Nginx 配置并重载,无需手改配置文件。

效果:访问 http://你的域名/api/configNginx 会转发到 http://127.0.0.1:5599/api/config


四、部署与启动后端 API

后端需在本机 5599 端口常驻,任选一种方式即可。

方式 A用 run.sh 一键部署(推荐)

在服务器 SSH 中进入项目根目录执行:

cd /www/wwwroot/view.airtep.com/720yun-offline   # 换成你的项目路径
chmod +x run.sh
./run.sh

run.sh 会依次执行:拉代码 → 安装依赖 → 构建到 dist/后台启动 APInohup 或 pm2
因为网站根目录指向的是 项目根目录/dist构建完成后刷新页面即可看到最新前端API 已在后台运行,无需再开终端。

使用 pm2 保活(推荐生产环境):

export USE_PM2=1
./run.sh

之后可在宝塔 软件商店Node 版本管理器 或 SSH 中用 pm2 list / pm2 logs view-airtep-api 查看。

若 Nginx 未反代 /api(例如直接访问 IP:端口):先设置再执行:

export API_BASE_URL="http://你的域名或IP:5599"
./run.sh

方式 B用宝塔「Node 项目」托管 API

  1. 宝塔 → 软件商店 → 安装 Node 项目(或 PM2 管理器)。

  2. 网站 里站点已按上面设好根目录与反向代理后,在 Node 项目 中:

    • 添加项目
    • 项目路径项目根目录/server(例如 /www/wwwroot/view.airtep.com/720yun-offline/server
    • 启动文件index.js
    • 运行端口5599(与反向代理目标一致);
    • 保存并启动项目。
  3. 部署/更新前端时,在项目根目录执行(不启动 API由宝塔管

    cd /www/wwwroot/view.airtep.com/720yun-offline
    git pull
    npm install --no-audit --no-fund
    npm run build
    

    然后在宝塔 Node 项目中点击「重启」该应用即可。


五、检查是否正常

  1. 前端:浏览器访问 http://你的域名,应能打开全景页。
  2. API
    • 同机执行:curl -s http://127.0.0.1:5599/api/config,应返回 JSON。
    • 或访问:http://你的域名/api/config,应返回相同内容(说明反代生效)。

/api/config 报 502多半是 5599 端口未启或未监听:用方式 A 再跑一次 ./run.sh,或用方式 B 在宝塔 Node 项目中启动/重启。


六、Nginx 配置参考(可选)

若你习惯手改 Nginx在对应站点的 server { ... } 内可保留或加入类似配置(与宝塔「反向代理」界面效果一致):

root /www/wwwroot/view.airtep.com/720yun-offline/dist;   # 与宝塔中「网站根目录」一致
index index.html;

location / {
    try_files $uri $uri/ /index.html;
}

location /api {
    proxy_pass http://127.0.0.1:5599;
    proxy_http_version 1.1;
    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;
}

根目录路径请按你在宝塔中设置的「网站根目录」修改。保存后重载 Nginx。


七、小结

步骤 说明
1. 网站根目录 指向 项目根目录/dist
2. 反向代理 代理目录 /api → 目标 http://127.0.0.1:5599
3. 后端保活 ./run.sh(或 USE_PM2=1 ./run.sh),或用宝塔 Node 项目托管 server/index.js 端口 5599

按上述配置后,在宝塔中即可正常访问前端,且 /api 请求会由 Nginx 转发到本机 Node 服务并正常运行。