# 爱鉴花小程序 - 生产环境部署指南 ## 服务器信息 - **服务器地址**: 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. 更新文档记录变更