- 新增数据库基础规范、API映射规范、安全规范等详细设计要求- 增加读写分离、分库分表、数据生命周期管理等策略说明 - 新建核心业务表结构,包括用户表、贷款申请表、保险申请表等 - 优化索引设计,提高查询效率
5.7 KiB
5.7 KiB
部署指南
概述
本文档描述了锡林郭勒盟安格斯牛数字化管理平台的部署流程和配置要求。
部署架构
┌─────────────────────────────────────────────────────────────────────┐
│ 负载均衡器 │
├─────────────────────────────────────────────────────────────────────┤
│ Web服务器 (Nginx) │
├─────────────────────────────────────────────────────────────────────┤
│ 前端静态文件 │ 后端API服务 (Node.js) │
├─────────────────────────────────────────────────────────────────────┤
│ MySQL数据库 │ 腾讯云对象存储 │
└─────────────────────────────────────────────────────────────────────┘
硬件配置
- Web服务器: 4核CPU / 8GB内存 / 100GB SSD
- 数据库服务器: 8核CPU / 16GB内存 / 500GB SSD(主从配置)
- 缓存服务器: 2核CPU / 4GB内存 / 50GB SSD(Redis)
CI/CD流程
- 代码提交: 触发GitHub Actions
- 自动化测试: 运行单元测试和集成测试
- 构建镜像: 使用Docker构建前后端镜像
- 部署: 通过Kubernetes滚动更新到生产环境
监控与日志
- 监控工具: Prometheus + Grafana
- 日志收集: ELK Stack(Elasticsearch, Logstash, Kibana)
环境要求
服务器要求
- 操作系统: Linux (推荐Ubuntu 20.04+ 或 CentOS 8+)
- 内存: 8GB+
- 存储: 100GB+
- CPU: 4核+
软件依赖
- Node.js 16+
- MySQL 8.0+
- Nginx 1.20+
- Docker (可选,用于容器化部署)
- Git
部署步骤
1. 数据库部署
# 安装MySQL
sudo apt update
sudo apt install mysql-server
# 创建数据库
mysql -u root -p
CREATE DATABASE xlxumu CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 创建用户并授权
CREATE USER 'xlxumu'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON xlxumu.* TO 'xlxumu'@'localhost';
FLUSH PRIVILEGES;
2. 后端API服务部署
# 克隆代码
git clone [repository_url] /opt/xlxumu
cd /opt/xlxumu/backend/api
# 安装依赖
npm install
# 配置环境变量
cp .env.example .env
# 编辑.env文件,配置数据库连接等信息
# 启动服务
npm start
3. 前端应用部署
# 构建各个前端应用
cd /opt/xlxumu/frontend/website
# 构建静态网站
cd /opt/xlxumu/frontend/farming-management
npm install
npm run build
# 为其他管理系统执行相同操作
4. Nginx配置
server {
listen 80;
server_name your_domain.com;
# 静态网站
location / {
root /opt/xlxumu/frontend/website/dist;
index index.html;
try_files $uri $uri/ =404;
}
# API代理
location /api/ {
proxy_pass http://localhost:8000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 各个管理系统
location /farming-management/ {
alias /opt/xlxumu/frontend/farming-management/dist/;
try_files $uri $uri/ /farming-management/index.html;
}
# 为其他管理系统添加类似配置
}
容器化部署 (Docker)
Docker Compose配置
version: '3.8'
services:
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: xlxumu
MYSQL_USER: xlxumu
MYSQL_PASSWORD: user_password
volumes:
- mysql_data:/var/lib/mysql
ports:
- "3306:3306"
api:
build: ./backend/api
ports:
- "8000:8000"
environment:
- DB_HOST=mysql
- DB_USER=xlxumu
- DB_PASSWORD=user_password
- DB_NAME=xlxumu
depends_on:
- mysql
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./frontend:/usr/share/nginx/html
depends_on:
- api
volumes:
mysql_data:
监控和日志
日志管理
- 应用日志:
/var/log/xlxumu/ - Nginx日志:
/var/log/nginx/ - MySQL日志:
/var/log/mysql/
监控指标
- API响应时间
- 数据库查询性能
- 服务器资源使用率
- 用户访问统计
安全配置
SSL证书
推荐使用Let's Encrypt免费SSL证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com
防火墙配置
# 开放必要端口
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
备份策略
数据库备份
# 定时备份脚本
mysqldump -u xlxumu -p xlxumu > /backup/xlxumu_$(date +%Y%m%d).sql
文件备份
- 静态资源文件备份
- 配置文件备份
- 日志文件轮转
故障处理
常见问题
- 数据库连接失败
- API服务无响应
- 前端页面加载缓慢
- 权限认证问题
恢复流程
- 检查服务状态
- 查看日志文件
- 恢复备份数据
- 重启相关服务