180 lines
3.9 KiB
Markdown
180 lines
3.9 KiB
Markdown
|
|
# 爱鉴花小程序 - 生产环境部署指南
|
|||
|
|
|
|||
|
|
## 服务器信息
|
|||
|
|
- **服务器地址**: www.jiebanke.com
|
|||
|
|
- **服务器用户**: root
|
|||
|
|
- **部署目录**: /data/nodejs/aijianhua/
|
|||
|
|
- **后端域名**: wapi.aijianhua.com
|
|||
|
|
- **数据库**: 生产环境MySQL (129.211.213.226:9527)
|
|||
|
|
|
|||
|
|
## 部署前准备
|
|||
|
|
|
|||
|
|
### 1. 服务器环境准备
|
|||
|
|
```bash
|
|||
|
|
# 登录服务器
|
|||
|
|
ssh root@www.jiebanke.com
|
|||
|
|
|
|||
|
|
# 安装Node.js (如果未安装)
|
|||
|
|
curl -fsSL https://rpm.nodesource.com/setup_18.x | bash -
|
|||
|
|
yum install -y nodejs
|
|||
|
|
|
|||
|
|
# 安装PM2
|
|||
|
|
npm install -g pm2
|
|||
|
|
|
|||
|
|
# 创建项目目录
|
|||
|
|
mkdir -p /data/nodejs/aijianhua
|
|||
|
|
mkdir -p /data/nodejs/aijianhua/logs
|
|||
|
|
mkdir -p /data/nodejs/aijianhua/uploads
|
|||
|
|
|
|||
|
|
# 设置目录权限
|
|||
|
|
chmod 755 /data/nodejs/aijianhua
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. SSL证书准备
|
|||
|
|
将SSL证书文件上传到服务器:
|
|||
|
|
- 证书文件: `/etc/nginx/ssl/wapi.aijianhua.com.crt`
|
|||
|
|
- 私钥文件: `/etc/nginx/ssl/wapi.aijianhua.com.key`
|
|||
|
|
|
|||
|
|
## 部署步骤
|
|||
|
|
|
|||
|
|
### 步骤1: 同步代码到服务器
|
|||
|
|
在本地开发机器上执行:
|
|||
|
|
```bash
|
|||
|
|
# 进入项目目录
|
|||
|
|
cd e:/vue/aijianhua/
|
|||
|
|
|
|||
|
|
# 运行同步脚本
|
|||
|
|
bash scripts/sync-to-server.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤2: 在服务器上部署
|
|||
|
|
登录服务器后执行:
|
|||
|
|
```bash
|
|||
|
|
# 进入项目目录
|
|||
|
|
cd /data/nodejs/aijianhua
|
|||
|
|
|
|||
|
|
# 运行部署脚本
|
|||
|
|
bash ../scripts/server-deploy.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤3: 配置Nginx
|
|||
|
|
将Nginx配置文件复制到正确位置:
|
|||
|
|
```bash
|
|||
|
|
# 备份原有配置(如果有)
|
|||
|
|
cp /etc/nginx/conf.d/aijianhua.conf /etc/nginx/conf.d/aijianhua.conf.bak
|
|||
|
|
|
|||
|
|
# 使用新的配置文件
|
|||
|
|
cp /data/nodejs/aijianhua/scripts/nginx-aijianhua.conf /etc/nginx/conf.d/aijianhua.conf
|
|||
|
|
|
|||
|
|
# 测试Nginx配置
|
|||
|
|
nginx -t
|
|||
|
|
|
|||
|
|
# 重启Nginx
|
|||
|
|
systemctl restart nginx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤4: 验证部署
|
|||
|
|
```bash
|
|||
|
|
# 检查服务状态
|
|||
|
|
pm2 status
|
|||
|
|
|
|||
|
|
# 检查服务日志
|
|||
|
|
tail -f /data/nodejs/aijianhua/logs/out.log
|
|||
|
|
|
|||
|
|
# 测试健康检查接口
|
|||
|
|
curl https://wapi.aijianhua.com/health
|
|||
|
|
|
|||
|
|
# 测试API接口
|
|||
|
|
curl https://wapi.aijianhua.com/api/v1/products
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 环境配置
|
|||
|
|
|
|||
|
|
### 生产环境变量 (.env.production)
|
|||
|
|
```bash
|
|||
|
|
NODE_ENV=production
|
|||
|
|
PORT=3330
|
|||
|
|
DB_HOST=129.211.213.226
|
|||
|
|
DB_PORT=9527
|
|||
|
|
DB_USER=root
|
|||
|
|
DB_PASSWORD=aiotAiot123!
|
|||
|
|
DB_NAME=xlxumudata
|
|||
|
|
JWT_SECRET=your-production-jwt-secret-key
|
|||
|
|
JWT_EXPIRE=7d
|
|||
|
|
UPLOAD_MAX_SIZE=50MB
|
|||
|
|
UPLOAD_PATH=./uploads
|
|||
|
|
CORS_ORIGIN=https://wapi.aijianhua.com
|
|||
|
|
LOG_LEVEL=info
|
|||
|
|
LOG_FILE=/data/nodejs/aijianhua/logs/app.log
|
|||
|
|
SWAGGER_ENABLED=true
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 日常维护
|
|||
|
|
|
|||
|
|
### 服务管理
|
|||
|
|
```bash
|
|||
|
|
# 查看服务状态
|
|||
|
|
pm2 status
|
|||
|
|
|
|||
|
|
# 查看服务日志
|
|||
|
|
pm2 logs aijianhua-backend
|
|||
|
|
|
|||
|
|
# 重启服务
|
|||
|
|
pm2 restart aijianhua-backend
|
|||
|
|
|
|||
|
|
# 停止服务
|
|||
|
|
pm2 stop aijianhua-backend
|
|||
|
|
|
|||
|
|
# 删除服务
|
|||
|
|
pm2 delete aijianhua-backend
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 日志管理
|
|||
|
|
```bash
|
|||
|
|
# 查看实时日志
|
|||
|
|
tail -f /data/nodejs/aijianhua/logs/out.log
|
|||
|
|
|
|||
|
|
# 查看错误日志
|
|||
|
|
tail -f /data/nodejs/aijianhua/logs/error.log
|
|||
|
|
|
|||
|
|
# 日志轮转(建议配置logrotate)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 备份策略
|
|||
|
|
```bash
|
|||
|
|
# 数据库备份
|
|||
|
|
mysqldump -h 129.211.213.226 -P 9527 -u root -p xlxumudata > backup_$(date +%Y%m%d).sql
|
|||
|
|
|
|||
|
|
# 上传文件备份
|
|||
|
|
tar -czf uploads_backup_$(date +%Y%m%d).tar.gz /data/nodejs/aijianhua/uploads/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 故障排除
|
|||
|
|
|
|||
|
|
### 常见问题
|
|||
|
|
1. **端口占用**: 检查3330端口是否被占用 `netstat -tlnp | grep 3330`
|
|||
|
|
2. **数据库连接失败**: 检查MySQL服务状态和网络连接
|
|||
|
|
3. **文件权限问题**: 检查上传目录权限 `chmod 755 /data/nodejs/aijianhua/uploads`
|
|||
|
|
4. **SSL证书问题**: 检查证书路径和权限
|
|||
|
|
|
|||
|
|
### 监控建议
|
|||
|
|
- 使用PM2监控应用状态
|
|||
|
|
- 配置日志监控
|
|||
|
|
- 设置健康检查告警
|
|||
|
|
- 监控服务器资源使用情况
|
|||
|
|
|
|||
|
|
## 安全建议
|
|||
|
|
|
|||
|
|
1. **定期更新依赖**: `npm audit fix`
|
|||
|
|
2. **修改默认JWT密钥**: 修改.env.production中的JWT_SECRET
|
|||
|
|
3. **配置防火墙**: 只开放必要的端口
|
|||
|
|
4. **定期备份**: 数据库和上传文件
|
|||
|
|
5. **监控日志**: 关注错误日志和安全日志
|
|||
|
|
|
|||
|
|
## 更新流程
|
|||
|
|
|
|||
|
|
1. 本地开发测试完成
|
|||
|
|
2. 运行同步脚本上传代码
|
|||
|
|
3. 在服务器上运行部署脚本
|
|||
|
|
4. 验证服务正常运行
|
|||
|
|
5. 更新文档记录变更
|