227 lines
5.1 KiB
Markdown
227 lines
5.1 KiB
Markdown
|
|
# 活牛采购系统 - 后端部署文档
|
|||
|
|
|
|||
|
|
## 系统概述
|
|||
|
|
本部署文档详细说明如何部署活牛采购智能数字化系统的后端服务,包括环境配置、文件上传、服务启动和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和数据库密码等敏感信息安全。
|