8.4 KiB
8.4 KiB
情绪博物馆自定义目录部署指南
📋 部署架构
根据您的要求,本部署方案采用以下目录结构:
/data/
├── www/emotion-museum/ # 前端静态文件目录
│ ├── index.html
│ ├── assets/
│ └── ...
├── builds/ # 后端JAR文件目录
│ ├── emotion-gateway.jar
│ ├── emotion-ai.jar
│ └── emotion-user.jar
└── logs/emotion-museum/ # 日志目录
├── nginx/
├── gateway/
├── ai/
├── user/
├── mysql/
├── redis/
└── nacos/
🏗️ 服务架构
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 用户访问 │───▶│ Nginx │───▶│ 静态文件 │
└─────────────┘ │ (80/443) │ │ /data/www/ │
└─────────────┘ └─────────────┘
│
▼
┌─────────────┐ ┌─────────────┐
│ API代理 │───▶│ Gateway │
│ /api/* │ │ (9000) │
└─────────────┘ └─────────────┘
│
▼
┌─────────────┐ ┌─────────────┐
│ 微服务集群 │ │ JAR文件 │
│ AI/User/... │ │ /data/builds│
└─────────────┘ └─────────────┘
🚀 快速部署
1. 准备环境
# 确保Docker和Docker Compose已安装
docker --version
docker-compose --version
# 创建必要目录
sudo mkdir -p /data/www/emotion-museum
sudo mkdir -p /data/builds
sudo mkdir -p /data/logs/emotion-museum
2. 配置环境变量
# 编辑环境变量文件
vim .env
配置说明:
# Coze API配置(已配置为与开发环境一致)
COZE_API_TOKEN=pat_GCR4qKzqpf90wMCvKsldMrB18KG3QsLDci65bZthssKsbLxu8X70BKYumleDcabO
# 数据库密码(可根据需要修改)
MYSQL_ROOT_PASSWORD=123456
MYSQL_PASSWORD=emotion123
3. 一键部署
# 给脚本执行权限
chmod +x deploy-custom.sh
# 执行自定义部署
./deploy-custom.sh
📁 文件说明
新增配置文件
-
docker-compose.custom.yml- 自定义Docker配置- 前端文件直接从宿主机目录提供
- 后端JAR文件挂载到容器
- 日志统一保存到指定目录
-
deploy-custom.sh- 自定义部署脚本- 自动检查和构建前后端
- 部署文件到指定目录
- 启动Docker服务
-
manage-custom.sh- 自定义管理脚本- 服务管理和监控
- 日志查看和健康检查
- 数据备份和恢复
修改的配置文件
-
deploy/nginx/conf.d/emotion-museum.conf- Nginx配置- 前端文件直接从
/data/www/emotion-museum提供 - API请求代理到Docker容器内的服务
- 日志保存到
/data/logs/emotion-museum/nginx/
- 前端文件直接从
-
deploy/nginx/nginx.conf- Nginx主配置- 更新上游服务器定义
- 支持容器间通信
🔧 端口配置
| 服务 | 容器端口 | 宿主机端口 | 说明 |
|---|---|---|---|
| Nginx | 80/443 | 80/443 | Web访问 |
| Gateway | 9000 | 9000 | API网关 |
| AI Service | 9002 | 9002 | AI服务 |
| User Service | 9001 | 9001 | 用户服务 |
| MySQL | 3306 | 3306 | 数据库 |
| Redis | 6379 | 6379 | 缓存 |
| Nacos | 8848 | 8848 | 注册中心 |
🛠️ 管理命令
服务管理
# 启动所有服务
./manage-custom.sh start
# 停止所有服务
./manage-custom.sh stop
# 重启所有服务
./manage-custom.sh restart
# 重启指定服务
./manage-custom.sh restart emotion-ai
# 查看服务状态
./manage-custom.sh status
日志管理
# 查看所有日志
./manage-custom.sh logs
# 跟踪日志输出
./manage-custom.sh logs -f
# 查看指定服务日志
./manage-custom.sh logs -s nginx
./manage-custom.sh logs -s emotion-gateway
健康检查
# 执行健康检查
./manage-custom.sh health
# 实时监控
./manage-custom.sh monitor
数据管理
# 备份数据
./manage-custom.sh backup
# 更新服务
./manage-custom.sh update
# 清理资源
./manage-custom.sh clean
📊 目录详情
前端目录 /data/www/emotion-museum/
/data/www/emotion-museum/
├── index.html # 主页面
├── assets/ # 静态资源
│ ├── css/ # 样式文件
│ ├── js/ # JavaScript文件
│ └── images/ # 图片文件
└── favicon.ico # 网站图标
后端目录 /data/builds/
/data/builds/
├── emotion-gateway.jar # 网关服务JAR
├── emotion-ai.jar # AI服务JAR
└── emotion-user.jar # 用户服务JAR
日志目录 /data/logs/emotion-museum/
/data/logs/emotion-museum/
├── nginx/ # Nginx日志
│ ├── access.log
│ └── error.log
├── gateway/ # 网关服务日志
├── ai/ # AI服务日志
├── user/ # 用户服务日志
├── mysql/ # MySQL日志
├── redis/ # Redis日志
└── nacos/ # Nacos日志
🔄 更新流程
更新前端
# 1. 重新构建前端
cd web
npm run build
# 2. 部署到目标目录
sudo rm -rf /data/www/emotion-museum/*
sudo cp -r dist/* /data/www/emotion-museum/
sudo chown -R www-data:www-data /data/www/emotion-museum
# 3. 重启Nginx(可选)
./manage-custom.sh restart nginx
更新后端
# 1. 重新构建后端
cd backend
mvn clean package -DskipTests
# 2. 部署JAR文件
sudo cp emotion-gateway/target/emotion-gateway-1.0.0.jar /data/builds/emotion-gateway.jar
sudo cp emotion-ai/target/emotion-ai-1.0.0.jar /data/builds/emotion-ai.jar
sudo cp emotion-user/target/emotion-user-1.0.0.jar /data/builds/emotion-user.jar
# 3. 重启相关服务
./manage-custom.sh restart emotion-gateway
./manage-custom.sh restart emotion-ai
./manage-custom.sh restart emotion-user
一键更新
# 自动构建和部署
./manage-custom.sh update
🚨 故障排除
常见问题
1. 前端访问404
# 检查前端文件是否存在
ls -la /data/www/emotion-museum/
# 检查Nginx配置
./manage-custom.sh logs -s nginx
# 检查文件权限
sudo chown -R www-data:www-data /data/www/emotion-museum
2. API调用失败
# 检查网关服务状态
./manage-custom.sh logs -s emotion-gateway
# 检查服务健康状态
curl http://localhost:9000/actuator/health
3. 服务启动失败
# 检查JAR文件是否存在
ls -la /data/builds/
# 检查服务日志
./manage-custom.sh logs -s emotion-ai
# 检查容器状态
docker-compose -f docker-compose.custom.yml ps
4. 日志文件过大
# 清理日志文件
sudo find /data/logs/emotion-museum -name "*.log" -size +100M -delete
# 设置日志轮转
sudo logrotate -f /etc/logrotate.conf
📞 技术支持
快速诊断
# 执行健康检查
./manage-custom.sh health
# 查看服务状态
./manage-custom.sh status
# 查看实时监控
./manage-custom.sh monitor
获取帮助
# 查看管理命令帮助
./manage-custom.sh --help
# 查看部署脚本帮助
./deploy-custom.sh --help
✅ 部署检查清单
- 目录创建:
/data/www/emotion-museum,/data/builds,/data/logs/emotion-museum - 环境配置:
COZE_API_TOKEN已配置为与开发环境一致 - 前端部署: 静态文件已复制到
/data/www/emotion-museum/ - 后端部署: JAR文件已复制到
/data/builds/ - 服务启动: 所有Docker容器正常运行
- 访问测试: 前端页面和API接口正常访问
- 日志检查: 日志文件正常生成到
/data/logs/emotion-museum/
🎉 恭喜!您的情绪博物馆项目已成功部署到自定义目录结构!