# 后端部署指南 - CentOS服务器 ## 📋 部署概述 本指南详细说明如何将jiebanke后端项目部署到CentOS服务器(1.13.156.49)的 `/data/nodejs/jiebanke` 目录。 ## 🎯 目标环境 - **服务器**: 1.13.156.49 (CentOS) - **部署目录**: /data/nodejs/jiebanke - **运行端口**: 3000 - **进程管理**: PM2 ## 📁 部署文件说明 ### 1. 服务器初始化脚本 (`init-server.sh`) ```bash # 功能: 在目标服务器上初始化Node.js环境 # 包含: Node.js 18.x安装、PM2安装、目录创建、防火墙配置 # 用法: ./init-server.sh ``` ### 2. 后端部署脚本 (`deploy-backend.sh`) ```bash # 功能: 将本地后端代码部署到服务器并重启服务 # 包含: 依赖安装、文件同步、PM2重启 # 用法: ./deploy-backend.sh ``` ### 3. PM2配置文件 (`backend/ecosystem.config.js`) ```javascript # 功能: PM2进程管理配置 # 包含: 环境配置、日志管理、性能优化、重启策略 ``` ## 🚀 部署步骤 ### 步骤1: 服务器环境初始化 ```bash # 运行初始化脚本(只需执行一次) ./init-server.sh ``` **初始化脚本执行内容:** - 更新系统包 - 安装Node.js 18.x - 安装PM2进程管理器 - 创建项目目录结构 - 配置防火墙开放端口3000 ### 步骤2: 后端代码部署 ```bash # 运行部署脚本(每次更新后执行) ./deploy-backend.sh ``` **部署脚本执行内容:** 1. 检查本地Node.js环境 2. 安装生产依赖 (`npm install --production`) 3. 使用rsync同步代码到服务器(排除不必要的文件) 4. 在服务器上安装依赖 5. 使用PM2重启应用服务 ### 步骤3: 验证部署 ```bash # 检查服务状态 ssh root@1.13.156.49 "pm2 status" # 查看应用日志 ssh root@1.13.156.49 "tail -f /data/nodejs/jiebanke/logs/out.log" # 测试API接口 curl http://1.13.156.49:3000/api/v1/health ``` ## 🔧 配置文件说明 ### PM2配置 (`ecosystem.config.js`) - **集群模式**: 使用所有CPU核心 - **内存限制**: 最大1GB内存自动重启 - **日志管理**: 日志文件存储在 `/data/nodejs/jiebanke/logs/` - **环境配置**: 支持development/production/test环境 ### 环境变量 部署前请确保服务器上有正确的 `.env` 文件,包含: - 数据库连接配置 - JWT密钥 - Redis配置(如使用) - 其他第三方服务配置 ## 🛠️ 日常运维 ### 查看服务状态 ```bash ssh root@1.13.156.49 "pm2 status" ssh root@1.13.156.49 "pm2 logs jiebanke-backend" ``` ### 重启服务 ```bash ssh root@1.13.156.49 "pm2 restart jiebanke-backend" ``` ### 停止服务 ```bash ssh root@1.13.156.49 "pm2 stop jiebanke-backend" ``` ### 查看系统资源 ```bash ssh root@1.13.156.49 "top" ssh root@1.13.156.49 "df -h" ``` ## 🚨 故障排除 ### 常见问题 1. **端口占用** ```bash ssh root@1.13.156.49 "lsof -i :3000" ssh root@1.13.156.49 "kill -9 " ``` 2. **权限问题** ```bash ssh root@1.13.156.49 "chmod -R 755 /data/nodejs/jiebanke" ``` 3. **依赖安装失败** ```bash # 清除npm缓存 ssh root@1.13.156.49 "npm cache clean --force" # 重新安装依赖 ssh root@1.13.156.49 "cd /data/nodejs/jiebanke && rm -rf node_modules && npm install" ``` ### 日志分析 ```bash # 应用日志 ssh root@1.13.156.49 "tail -f /data/nodejs/jiebanke/logs/error.log" # PM2日志 ssh root@1.13.156.49 "pm2 logs jiebanke-backend" # 系统日志 ssh root@1.13.156.49 "journalctl -u pm2-root" ``` ## 📊 监控与备份 ### 应用监控 ```bash # 安装PM2监控插件 ssh root@1.13.156.49 "pm2 install pm2-logrotate" ssh root@1.13.156.49 "pm2 set pm2-logrotate:max_size 10M" ssh root@1.13.156.49 "pm2 set pm2-logrotate:retain 30" ``` ### 数据备份 ```bash # 数据库备份 ssh root@1.13.156.49 "mysqldump -u root -p jiebandata > /backup/db-backup-$(date +%Y%m%d).sql" # 代码备份 ssh root@1.13.156.49 "tar -czf /backup/code-backup-$(date +%Y%m%d).tar.gz /data/nodejs/jiebanke" ``` ## 📞 支持信息 - **服务器地址**: 1.13.156.49 - **部署目录**: /data/nodejs/jiebanke - **服务端口**: 3000 - **进程名称**: jiebanke-backend - **日志目录**: /data/nodejs/jiebanke/logs/ --- *最后更新: 2024年* 📅