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