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

148 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 宝塔面板部署说明
在宝塔面板中部署本项目:前端由 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`
- **目标 URL**`http://127.0.0.1:5599/`**末尾必须带 `/`**,这样 `/api/config` 会转成后端的 `/config`,因本后端路由无 `/api` 前缀)
- **代理目录**`/api`(表示只把 `/api` 开头的请求转给后端)
- **发送域名**:默认 `$host` 即可
4. 保存后,若宝塔生成的 `proxy_pass` 没有末尾 `/`,请到 **设置 → 配置文件** 中把 `proxy_pass http://127.0.0.1:5599;` 改为 `proxy_pass http://127.0.0.1:5599/;`,再重载 Nginx。
效果:访问 `http://你的域名/api/config`Nginx 会转发到 `http://127.0.0.1:5599/config`,后端才能正确返回。
---
## 四、部署与启动后端 API
后端需在本机 5599 端口常驻,任选一种方式即可。
### 方式 A用 run.sh 一键部署(推荐)
在服务器 SSH 中进入项目根目录执行:
```bash
cd /www/wwwroot/view.airtep.com/720yun-offline # 换成你的项目路径
chmod +x run.sh
./run.sh
```
`run.sh` 会依次执行:拉代码 → 安装依赖 → 构建到 `dist/`**后台启动 API**nohup 或 pm2
因为网站根目录指向的是 `项目根目录/dist`构建完成后刷新页面即可看到最新前端API 已在后台运行,无需再开终端。
**使用 pm2 保活(推荐生产环境):**
```bash
export USE_PM2=1
./run.sh
```
之后可在宝塔 **软件商店****Node 版本管理器** 或 SSH 中用 `pm2 list` / `pm2 logs view-airtep-api` 查看。
**若 Nginx 未反代 /api**(例如直接访问 IP:端口):先设置再执行:
```bash
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由宝塔管
```bash
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/config`,应返回 JSON。
- 或访问:`http://你的域名/api/config`,应返回相同内容(说明反代生效)。
若 `/api/config` 报 502多半是 5599 端口未启或未监听:用方式 A 再跑一次 `./run.sh`,或用方式 B 在宝塔 Node 项目中启动/重启。
---
## 六、Nginx 配置参考(可选)
若你习惯手改 Nginx在对应站点的 `server { ... }` 内可保留或加入类似配置(与宝塔「反向代理」界面效果一致):
```nginx
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 服务并正常运行。