2.9 KiB
2.9 KiB
云南智慧牛产业平台 - 部署与运维文档
1. 部署环境
- 操作系统: CentOS 10 64位
- Web服务器: Nginx 1.24+
- 容器引擎: Docker 24.0+
- 容器编排: Docker Compose 2.20+
2. 目录结构规范
服务器根目录建议为 /opt/caiyunniu/:
/opt/caiyunniu/
├── docker-compose.yml # 容器编排文件
├── nginx/
│ ├── conf.d/ # Nginx 配置文件
│ ├── certs/ # SSL 证书
│ └── html/ # 前端静态资源
│ ├── website/ # 官网构建产物 (dist)
│ └── admin/ # 管理后台构建产物 (dist)
├── mysql/
│ ├── data/ # 数据库数据卷
│ └── init/ # 初始化 SQL 脚本
├── redis/
│ └── data/ # Redis 数据卷
└── logs/ # 应用日志
3. 前端部署 (Website)
3.1 本地构建
在开发机执行:
cd website
npm install
npm run build
构建完成后,生成的 dist 目录即为部署包。
3.2 上传文件
将 dist 目录内容上传至服务器:
scp -r dist/* user@server_ip:/opt/caiyunniu/nginx/html/website/
3.3 Nginx 配置示例
server {
listen 80;
server_name www.caiyunniu.com;
# 强制跳转 HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name www.caiyunniu.com;
ssl_certificate /etc/nginx/certs/caiyunniu.pem;
ssl_certificate_key /etc/nginx/certs/caiyunniu.key;
# 官网前端
location / {
root /usr/share/nginx/html/website;
index index.html;
try_files $uri $uri/ /index.html; # Vue Router History 模式支持
}
# 后端 API 代理
location /api/ {
proxy_pass http://backend-service:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
4. 后端部署 (Backend)
4.1 Docker 镜像构建
在后端项目根目录创建 Dockerfile:
FROM openjdk:17-jdk-alpine
VOLUME /tmp
COPY target/*.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
4.2 Docker Compose 编排
version: '3'
services:
backend-service:
build: ./backend
ports:
- "8080:8080"
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/caiyunniu?useSSL=false
- SPRING_REDIS_HOST=redis
depends_on:
- mysql
- redis
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: strong_password
volumes:
- ./mysql/data:/var/lib/mysql
redis:
image: redis:6.0
volumes:
- ./redis/data:/data
5. 运维常用命令
- 启动所有服务:
docker-compose up -d - 查看日志:
docker-compose logs -f backend-service - 重启服务:
docker-compose restart backend-service - Nginx 重载配置:
docker exec -it nginx nginx -s reload