Files
niumalll/backend/README_DEPLOY.md

227 lines
5.1 KiB
Markdown
Raw Normal View History

# 活牛采购系统 - 后端部署文档
## 系统概述
本部署文档详细说明如何部署活牛采购智能数字化系统的后端服务包括环境配置、文件上传、服务启动和Nginx配置等。
## 技术栈
- **Node.js**: >= 18.0.0
- **数据库**: MySQL直接使用生产环境数据库
- **Web服务器**: Nginx配置SSL
- **进程管理**: PM2
- **API文档**: Swagger 3.0(生产环境不禁用)
## 服务器配置
- **操作系统**: CentOS
- **服务器地址**: www.jiebanke.com
- **后端域名**: wapi.yunniushi.cn
- **服务器目录**: /data/nodejs/yunniushi/
- **后端端口**: 4330
- **用户名**: root
- **密码**: Aiotjkl$7jk58s&12
## 部署前准备
### 1. 环境安装
在CentOS服务器上安装以下软件
```bash
# 更新系统
sudo yum update -y
# 安装Node.js 18
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
# 安装PM2全局
sudo npm install -g pm2
# 安装Nginx
sudo yum install -y nginx
# 启动Nginx服务并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
# 安装Git如果需要从代码仓库克隆代码
sudo yum install -y git
```
### 2. 创建服务器目录结构
```bash
# 创建项目根目录
sudo mkdir -p /data/nodejs/yunniushi/
sudo chown -R $USER:$USER /data/nodejs/yunniushi/
# 创建日志目录
mkdir -p /data/nodejs/yunniushi/logs
# 创建SSL证书目录
mkdir -p /etc/nginx/ssl/wapi.yunniushi.cn/
```
### 3. 上传SSL证书
将SSL证书文件上传到服务器上的SSL证书目录
- fullchain.pem -> /etc/nginx/ssl/wapi.yunniushi.cn/fullchain.pem
- privkey.pem -> /etc/nginx/ssl/wapi.yunniushi.cn/privkey.pem
## 文件同步与部署
### 方法一:使用同步脚本(推荐)
在本地项目目录中执行同步脚本,将代码上传到服务器:
```bash
# 给脚本添加执行权限
chmod +x sync_to_server.sh
# 执行同步脚本(脚本已预配置正确的服务器信息)
./sync_to_server.sh
```
### 方法二:手动上传文件
如果不使用同步脚本,可以手动将以下文件上传到服务器的 `/data/nodejs/yunniushi/` 目录:
- app.js
- package.json
- package-lock.json
- .env
- ecosystem.config.js
- config/ 目录
- models/ 目录
- routes/ 目录
- start_server.sh
### SSH连接问题排查
如果遇到SSH连接问题可以使用专门的测试工具进行诊断
```bash
# 给测试脚本添加执行权限
chmod +x test_ssh_connection.sh
# 执行SSH连接测试脚本
./test_ssh_connection.sh
```
此脚本会执行一系列测试,包括:
- DNS解析测试
- 网络连通性测试
- SSH端口开放测试
- 详细的SSH连接测试
- 提供故障排除建议
## 服务启动
### 在服务器上启动服务
1. 登录到服务器:
```bash
ssh root@www.jiebanke.com
# 密码: Aiotjkl$7jk58s&12
```
2. 进入项目目录:
```bash
cd /data/nodejs/yunniushi/
```
3. 执行启动脚本:
```bash
# 给启动脚本添加执行权限
chmod +x start_server.sh
# 启动服务
./start_server.sh
```
### 手动启动(备选方法)
如果启动脚本出现问题,可以手动执行以下命令:
```bash
# 安装依赖
npm install --production
# 启动PM2管理的服务
npm run pm2:start
# 设置PM2开机自启
pm2 startup
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u $USER --hp $HOME
# 保存PM2配置
sudo pm2 save
```
## Nginx配置
### 复制并激活Nginx配置文件
1. 复制Nginx配置文件到Nginx配置目录
```bash
# 在服务器上执行
cp /data/nodejs/yunniushi/nginx.conf /etc/nginx/conf.d/yunniushi_backend.conf
```
2. 测试Nginx配置是否正确
```bash
sudo nginx -t
```
3. 重启Nginx服务
```bash
sudo systemctl restart nginx
```
### 防火墙配置
如果服务器启用了防火墙,需要开放相关端口:
```bash
# 开放HTTPS端口443
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
```
## 服务管理命令
### PM2常用命令
```bash
# 查看服务状态
npm run pm2:start
# 停止服务
npm run pm2:stop
# 重启服务
npm run pm2:restart
# 查看服务日志
pm2 logs niumall-backend
```
### Nginx常用命令
```bash
# 启动Nginx
sudo systemctl start nginx
# 停止Nginx
sudo systemctl stop nginx
# 重启Nginx
sudo systemctl restart nginx
# 查看Nginx状态
sudo systemctl status nginx
# 查看Nginx日志
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
```
## 访问测试
部署完成后,可以通过以下地址访问系统:
- **API文档**: https://wapi.yunniushi.cn/api/docs
- **健康检查**: https://wapi.yunniushi.cn/health
- **API接口**: https://wapi.yunniushi.cn/api/[接口路径]
## 注意事项
1. 确保服务器上的MySQL数据库已经正确配置并且网络连接通畅。
2. 根据实际情况修改.env文件中的数据库连接信息。
3. 确保SSL证书文件路径与nginx.conf中的配置一致。
4. 如果遇到端口冲突,需要修改配置文件中的端口号。
5. 定期备份数据库和重要配置文件。
6. 生产环境中请确保JWT_SECRET和数据库密码等敏感信息安全。