4.9 KiB
4.9 KiB
宝塔面板部署指南 — BigWo 语音/文字聊天
域名:
demo.tensorgrove.com.cn
系统: TencentOS 4
架构: Nginx + Node.js + MySQL
一、宝塔面板准备
1.1 安装必要软件(宝塔 → 软件商店)
- Nginx(一般已安装)
- MySQL 5.7 / 8.0
- PM2 管理器(软件商店搜索 "PM2",一键安装)
1.2 安装 Node.js(PM2 管理器 → 设置 → Node 版本)
- 选择 Node.js 20.x 安装
二、上传项目文件
2.1 上传
宝塔 → 文件 → 进入 /www/wwwroot/,创建文件夹 demo.tensorgrove.com.cn
将本地 test2 项目中的以下内容上传到 /www/wwwroot/demo.tensorgrove.com.cn/:
demo.tensorgrove.com.cn/
├── client/ ← 整个前端目录
├── server/ ← 整个后端目录
└── ecosystem.config.js
可以用宝塔文件管理器直接上传压缩包,然后解压
2.2 安装依赖(宝塔 → 终端)
# 后端依赖
cd /www/wwwroot/demo.tensorgrove.com.cn/server
npm install --production
npm install mysql2
# 前端依赖 & 构建
cd /www/wwwroot/demo.tensorgrove.com.cn/client
npm install
npm run build
构建完成后 client/dist/ 目录就是前端静态文件。
三、配置 MySQL
3.1 创建数据库
宝塔 → 数据库 → 添加数据库:
- 数据库名:
bigwo_chat - 用户名:
bigwo - 密码: 自己设置(记住)
- 权限: 本地服务器
3.2 修改 .env
编辑 /www/wwwroot/demo.tensorgrove.com.cn/server/.env,更新 MySQL 配置:
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=bigwo
MYSQL_PASSWORD=你设置的密码
MYSQL_DATABASE=bigwo_chat
同时更新 FC 回调地址:
FC_SERVER_URL=https://demo.tensorgrove.com.cn/api/voice/fc_callback
四、宝塔添加站点
4.1 添加站点
宝塔 → 网站 → 添加站点:
- 域名:
demo.tensorgrove.com.cn - 根目录:
/www/wwwroot/demo.tensorgrove.com.cn/client/dist - PHP 版本: 纯静态
- 数据库: 不创建(已在上一步创建)
4.2 申请 SSL 证书
网站 → demo.tensorgrove.com.cn → SSL → Let's Encrypt:
- 勾选域名 → 申请
- 开启 强制 HTTPS
4.3 配置 Nginx 反向代理
网站 → demo.tensorgrove.com.cn → 配置文件
找到 server {} 块,在已有的配置中添加以下内容(放在 location / {} 之前):
# ===== 后端 API 反向代理 =====
location /api/ {
proxy_pass http://127.0.0.1:3012;
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;
# SSE 流式输出支持(文字聊天)
proxy_set_header Connection '';
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
# 静态资源长缓存
location /assets/ {
expires 1y;
add_header Cache-Control "public, immutable";
}
确保 location / {} 块中有 SPA 回退(宝塔默认没有,需手动加):
location / {
try_files $uri $uri/ /index.html;
}
保存后点击 保存 按钮(宝塔会自动 reload Nginx)。
五、PM2 启动后端
方式 A:宝塔 PM2 管理器(推荐)
软件商店 → PM2 管理器 → 设置 → 添加项目:
- 项目路径:
/www/wwwroot/demo.tensorgrove.com.cn/server - 启动文件:
app.js - 项目名称:
demo.tensorgrove.com.cn-server
方式 B:命令行
cd /www/wwwroot/demo.tensorgrove.com.cn
pm2 start ecosystem.config.js
pm2 save
pm2 startup
六、验证
6.1 检查后端
curl http://127.0.0.1:3012/api/voice/config
# 应返回 JSON 配置
6.2 检查前端
浏览器访问 https://demo.tensorgrove.com.cn
6.3 检查 API 代理
浏览器访问 https://demo.tensorgrove.com.cn/api/voice/config
6.4 检查 FC 回调
火山引擎 RTC 控制台的 FC 回调地址更新为:
https://demo.tensorgrove.com.cn/api/voice/fc_callback
七、常用运维命令
# 查看后端日志
pm2 logs demo.tensorgrove.com.cn-server
# 重启后端
pm2 restart demo.tensorgrove.com.cn-server
# 重新构建前端
cd /www/wwwroot/demo.tensorgrove.com.cn/client
npm run build
# 查看 Nginx 错误日志
tail -f /www/wwwlogs/demo.tensorgrove.com.cn.error.log
八、注意事项
- 域名 DNS 解析:确保
demo.tensorgrove.com.cnA 记录指向服务器公网 IP - 防火墙:宝塔 → 安全 → 放行端口 80、443(一般默认已放行)
- 端口 3012 不需要对外开放,Nginx 内部转发即可
- FC_SERVER_URL 必须改为
https://demo.tensorgrove.com.cn/api/voice/fc_callback(不再用 ngrok) - MySQL 密码 生产环境务必使用强密码