Files
aijianhua/docs/生产环境部署指南.md
mapleaf a10df5928e "refactor(backend): 移除未使用的redis、socket.io和sqlite3依赖"包括:
- `backend/.env.production`:生产环境变量配置
- `backend/ecosystem.config.js`:PM2生态系统配置文件
- `scripts/nginx-aijianhua.conf`:Nginx配置文件
- `scripts/server-deploy.sh`:服务器部署脚本
- `scripts/sync-to-server.sh`:代码同步脚本
- `docs/生产环境部署指南.md`:生产环境部署指南文档

同时移除了`package.json`中不再使用的依赖项:- `redis`- `socket.io`
- `sqlite3`这些更改将有助于简化生产环境的部署流程,并确保服务能够稳定运行。```
2025-09-11 17:05:14 +08:00

3.9 KiB
Raw Blame History

爱鉴花小程序 - 生产环境部署指南

服务器信息

  • 服务器地址: www.jiebanke.com
  • 服务器用户: root
  • 部署目录: /data/nodejs/aijianhua/
  • 后端域名: wapi.aijianhua.com
  • 数据库: 生产环境MySQL (129.211.213.226:9527)

部署前准备

1. 服务器环境准备

# 登录服务器
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: 同步代码到服务器

在本地开发机器上执行:

# 进入项目目录
cd e:/vue/aijianhua/

# 运行同步脚本
bash scripts/sync-to-server.sh

步骤2: 在服务器上部署

登录服务器后执行:

# 进入项目目录
cd /data/nodejs/aijianhua

# 运行部署脚本
bash ../scripts/server-deploy.sh

步骤3: 配置Nginx

将Nginx配置文件复制到正确位置

# 备份原有配置(如果有)
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: 验证部署

# 检查服务状态
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)

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

日常维护

服务管理

# 查看服务状态
pm2 status

# 查看服务日志
pm2 logs aijianhua-backend

# 重启服务
pm2 restart aijianhua-backend

# 停止服务
pm2 stop aijianhua-backend

# 删除服务
pm2 delete aijianhua-backend

日志管理

# 查看实时日志
tail -f /data/nodejs/aijianhua/logs/out.log

# 查看错误日志
tail -f /data/nodejs/aijianhua/logs/error.log

# 日志轮转建议配置logrotate

备份策略

# 数据库备份
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. 更新文档记录变更