6.3 KiB
6.3 KiB
情绪博物馆容器部署指南
📋 概述
本文档提供了情绪博物馆项目的完整容器化部署方案,支持开发环境和生产环境的快速部署。
🏗️ 架构说明
服务组件
- 前端应用 (Vue3 + Ant Design) - 端口: 80/3000
- API网关 (Spring Cloud Gateway) - 端口: 9000
- AI服务 (Spring Boot + Coze API) - 端口: 9002
- 用户服务 (Spring Boot) - 端口: 9001
- MySQL数据库 - 端口: 3306
- Redis缓存 - 端口: 6379
- Nacos注册中心 - 端口: 8848
- Nginx反向代理 - 端口: 80/443
网络架构
Internet → Nginx → Frontend/Gateway → Microservices → Database
🚀 快速开始
1. 系统要求
- 操作系统: Linux/macOS/Windows
- Docker: 20.10+
- Docker Compose: 1.29+
- 内存: 最少4GB,推荐8GB+
- 磁盘: 最少10GB可用空间
2. 一键部署
# 克隆项目
git clone <repository-url>
cd EmotionMuseum
# 快速部署(自动安装依赖)
chmod +x quick-deploy.sh
./quick-deploy.sh
# 或者手动部署
chmod +x deploy.sh
./deploy.sh
3. 访问应用
- 前端应用: http://localhost
- API文档: http://localhost:9000/doc.html
- Nacos控制台: http://localhost:8848/nacos (nacos/nacos)
📁 文件结构
EmotionMuseum/
├── docker-compose.yml # 开发环境配置
├── docker-compose.prod.yml # 生产环境配置
├── deploy.sh # 部署脚本
├── quick-deploy.sh # 快速部署脚本
├── manage.sh # 管理脚本
├── .env # 环境变量
├── deploy/ # 部署配置
│ ├── nginx/ # Nginx配置
│ │ ├── nginx.conf
│ │ ├── conf.d/
│ │ └── ssl/
│ ├── mysql/ # MySQL配置
│ └── redis/ # Redis配置
├── backend/ # 后端服务
│ ├── emotion-gateway/
│ │ └── Dockerfile
│ ├── emotion-ai/
│ │ └── Dockerfile
│ └── emotion-user/
│ └── Dockerfile
└── web/ # 前端应用
├── Dockerfile
└── nginx.conf
⚙️ 配置说明
环境变量配置
编辑 .env 文件:
# 数据库配置
MYSQL_ROOT_PASSWORD=123456
MYSQL_DATABASE=emotion_museum
MYSQL_USER=emotion
MYSQL_PASSWORD=emotion123
# Coze API配置
COZE_API_TOKEN=your-coze-api-token
# 时区设置
TZ=Asia/Shanghai
Nginx配置
- 主配置:
deploy/nginx/nginx.conf - 站点配置:
deploy/nginx/conf.d/emotion-museum.conf - SSL证书:
deploy/nginx/ssl/
数据库配置
- MySQL配置:
deploy/mysql/conf.d/my.cnf - 初始化脚本:
backend/mysql_emotion_museum_final.sql
🛠️ 管理命令
基础操作
# 启动所有服务
./manage.sh start
# 停止所有服务
./manage.sh stop
# 重启所有服务
./manage.sh restart
# 查看服务状态
./manage.sh status
日志管理
# 查看所有服务日志
./manage.sh logs
# 跟踪日志输出
./manage.sh logs -f
# 查看特定服务日志
./manage.sh logs -s gateway
./manage.sh logs -s ai-service
服务管理
# 重启特定服务
./manage.sh restart gateway
./manage.sh restart ai-service
# 健康检查
./manage.sh health
# 监控面板
./manage.sh monitor
数据管理
# 备份数据
./manage.sh backup
# 恢复数据
./manage.sh restore backup_file.tar.gz
# 更新服务
./manage.sh update
# 清理资源
./manage.sh clean
🔧 生产环境部署
1. 使用生产配置
# 使用生产环境配置文件
docker-compose -f docker-compose.prod.yml up -d
2. SSL证书配置
# 放置SSL证书
cp your-domain.crt deploy/nginx/ssl/emotion-museum.crt
cp your-domain.key deploy/nginx/ssl/emotion-museum.key
# 修改Nginx配置启用HTTPS
vim deploy/nginx/conf.d/emotion-museum.conf
3. 域名配置
修改 deploy/nginx/conf.d/emotion-museum.conf:
server_name your-domain.com www.your-domain.com;
4. 防火墙配置
# Ubuntu/Debian
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# CentOS/RHEL
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
📊 监控和维护
服务监控
# 实时监控
./manage.sh monitor
# 资源使用情况
docker stats
# 服务状态
docker-compose ps
日志查看
# 应用日志
./manage.sh logs -f
# 系统日志
tail -f logs/nginx/access.log
tail -f logs/mysql/error.log
性能优化
- 数据库优化: 调整
deploy/mysql/conf.d/my.cnf - Redis优化: 调整
deploy/redis/redis.conf - Nginx优化: 调整
deploy/nginx/nginx.conf - JVM优化: 修改Dockerfile中的JVM参数
🔒 安全配置
1. 数据库安全
- 修改默认密码
- 限制访问IP
- 启用SSL连接
2. Redis安全
- 设置密码认证
- 绑定特定IP
- 禁用危险命令
3. Nginx安全
- 启用HTTPS
- 配置安全头
- 限制请求频率
4. 应用安全
- 配置JWT密钥
- 启用CORS限制
- 设置API限流
🚨 故障排除
常见问题
1. 服务启动失败
# 查看服务日志
./manage.sh logs -s service-name
# 检查端口占用
netstat -tlnp | grep :port
# 重启服务
./manage.sh restart service-name
2. 数据库连接失败
# 检查MySQL状态
docker-compose exec mysql mysqladmin ping -u root -p
# 查看数据库日志
./manage.sh logs -s mysql
3. 前端访问异常
# 检查Nginx配置
nginx -t
# 查看Nginx日志
./manage.sh logs -s nginx
4. API调用失败
# 检查网关状态
curl http://localhost:9000/actuator/health
# 查看网关日志
./manage.sh logs -s gateway
性能问题
- 内存不足: 增加服务器内存或调整JVM参数
- 磁盘空间: 清理日志文件和Docker镜像
- 网络延迟: 检查服务间网络连接
📞 技术支持
如遇到问题,请:
- 查看相关服务日志
- 检查配置文件
- 参考故障排除指南
- 联系技术支持团队
部署完成后,请及时修改默认密码和配置文件中的敏感信息!