179 lines
4.1 KiB
Markdown
179 lines
4.1 KiB
Markdown
|
|
# 后端部署指南 - 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 <PID>"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
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年* 📅
|