9.8 KiB
9.8 KiB
情绪博物馆测试环境部署指南
📋 概述
本文档提供了情绪博物馆项目测试环境的完整部署方案,包括环境安装、数据库初始化、服务部署等全流程。
新版本特性:
- ✅ 支持IP访问,暂不使用域名
- ✅ 自动化环境安装 (Java, Maven, Node.js, Docker等)
- ✅ 自动化数据库初始化 (MySQL + Nacos)
- ✅ 测试环境专用配置
- ✅ 使用最新稳定版本软件
- ✅ 完整的健康检查和监控
🏗️ 架构说明
服务组件
- 前端应用 (Vue3 + Ant Design) - 端口: 3000 → 80 (Nginx)
- API网关 (Spring Cloud Gateway) - 端口: 9000
- AI服务 (Spring Boot + Coze API) - 端口: 9002
- 用户服务 (Spring Boot) - 端口: 9001
- MySQL数据库 - 端口: 3306
- Redis缓存 - 端口: 6379
- Nacos注册中心 - 端口: 8848
- Nginx反向代理 - 端口: 80
网络架构
用户 → Nginx(80) → 前端(3000) / API网关(9000) → 微服务 → 数据库
↓
Nacos注册中心(8848)
🚀 快速开始
1. 系统要求
- 操作系统: Linux/macOS (推荐 Ubuntu 20.04+)
- 内存: 最少4GB,推荐8GB+
- 磁盘: 最少20GB可用空间
- 网络: 能够访问互联网
2. 一键部署
# 进入部署目录
cd emotion-museum-1.0.0-20250713_111829
# 一键部署(包含环境安装、数据库初始化、服务部署)
chmod +x deploy.sh
./deploy.sh
3. 分步部署
# 1. 安装基础环境
./deploy.sh install-env
# 2. 初始化数据库
./deploy.sh init-db
# 3. 构建应用镜像
./deploy.sh build
# 4. 启动服务
./deploy.sh start
4. 访问应用
- 前端应用: http://localhost
- API网关: http://localhost:9000
- Nacos控制台: http://localhost:8848/nacos (nacos/nacos)
- Nacos控制台: http://localhost:8848/nacos (nacos/nacos)
📁 文件结构
emotion-museum-1.0.0-20250713_111829/
├── deploy.sh # 主部署脚本
├── install-environment.sh # 环境安装脚本
├── init-database.sh # 数据库初始化脚本
├── manage.sh # 服务管理脚本
├── docker-compose.yml # 默认配置
├── docker-compose.test.yml # 测试环境配置
├── .env.test # 测试环境变量
├── README.md # 快速开始指南
├── DEPLOY.md # 详细部署文档
├── backend/ # 后端服务
│ ├── emotion-gateway-1.0.0.jar
│ ├── emotion-user-1.0.0.jar
│ ├── emotion-ai-1.0.0.jar
│ ├── gateway-Dockerfile
│ ├── user-Dockerfile
│ ├── ai-Dockerfile
│ └── config/ # 配置文件
│ ├── application-test.yml
│ ├── gateway-test.yml
│ └── ai-test.yml
├── frontend/ # 前端应用
│ ├── Dockerfile
│ ├── nginx.conf
│ ├── index.html
│ ├── assets/
│ └── config/
│ └── test.env.js
├── database/ # 数据库脚本
│ ├── mysql_emotion_museum_final.sql
│ └── verify-database-script.sql
└── deploy/ # 部署配置
├── nginx/conf.d/
├── mysql/conf.d/
└── redis/
⚙️ 配置说明
环境变量配置
编辑 .env.test 文件:
# 服务器IP(重要:请修改为实际IP)
SERVER_IP=localhost
# 数据库配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=123456
MYSQL_USERNAME=emotion
MYSQL_PASSWORD=emotion123
# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
# Nacos配置
NACOS_SERVER_ADDR=localhost:8848
# COZE AI配置(重要:请配置实际的API Token)
COZE_API_TOKEN=your-coze-api-token
# JWT配置
JWT_SECRET=emotion-museum-test-secret-key-2025
# 时区设置
TZ=Asia/Shanghai
服务配置
- 网关配置:
backend/config/gateway-test.yml - 用户服务配置:
backend/config/application-test.yml - AI服务配置:
backend/config/ai-test.yml - 前端配置:
frontend/config/test.env.js
数据库配置
- MySQL配置:
deploy/mysql/conf.d/my.cnf - Redis配置:
deploy/redis/redis.conf - 初始化脚本:
database/mysql_emotion_museum_final.sql
🛠️ 管理命令
部署命令
# 完整部署(推荐)
./deploy.sh
# 分步部署
./deploy.sh install-env # 安装环境
./deploy.sh init-db # 初始化数据库
./deploy.sh build # 构建镜像
./deploy.sh start # 启动服务
# 跳过某些步骤
./deploy.sh --skip-env # 跳过环境安装
./deploy.sh --skip-db # 跳过数据库初始化
./deploy.sh --debug # 启用调试模式
服务管理
# 查看服务状态
./deploy.sh status
# 启动服务
./deploy.sh start
# 停止服务
./deploy.sh stop
# 重启服务
./deploy.sh restart
# 重启特定服务
./deploy.sh restart gateway
./deploy.sh restart user-service
./deploy.sh restart ai-service
日志管理
# 查看所有服务日志
./deploy.sh logs
# 跟踪日志输出
./deploy.sh logs -f
# 查看特定服务日志
./deploy.sh logs gateway
./deploy.sh logs user-service
./deploy.sh logs ai-service
数据管理
# 备份数据
./deploy.sh backup
# 健康检查
./deploy.sh health
# 更新服务
./deploy.sh update
# 清理资源
./deploy.sh clean
独立脚本
# 环境安装
./install-environment.sh
# 数据库初始化
./init-database.sh
# 服务管理(兼容旧版本)
./manage.sh start
./manage.sh stop
./manage.sh status
🔧 生产环境配置
1. 修改环境配置
复制并修改环境配置文件:
# 复制测试环境配置
cp .env.test .env.prod
# 修改生产环境配置
vim .env.prod
关键配置项:
# 修改为实际服务器IP
SERVER_IP=your-server-ip
# 修改为生产环境数据库密码
MYSQL_ROOT_PASSWORD=your-strong-password
MYSQL_PASSWORD=your-strong-password
# 配置实际的COZE API Token
COZE_API_TOKEN=your-actual-coze-api-token
# 配置强密码的JWT密钥
JWT_SECRET=your-production-jwt-secret-key
# 启用HTTPS(如需要)
ENABLE_HTTPS=true
NGINX_HTTPS_PORT=443
2. 域名和SSL配置(可选)
如果需要使用域名和HTTPS:
# 放置SSL证书
mkdir -p deploy/nginx/ssl
cp your-domain.crt deploy/nginx/ssl/
cp your-domain.key deploy/nginx/ssl/
# 修改Nginx配置
vim deploy/nginx/conf.d/default.conf
3. 防火墙配置
# 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
📊 监控和维护
服务监控
# 查看服务状态
./deploy.sh status
# 健康检查
./deploy.sh health
# 资源使用情况
docker stats
# 查看容器状态
docker ps -a
日志管理
# 查看应用日志
./deploy.sh logs
# 查看特定服务日志
./deploy.sh logs gateway
./deploy.sh logs user-service
./deploy.sh logs ai-service
# 实时跟踪日志
./deploy.sh logs -f
# 查看系统日志
tail -f /data/logs/emotion-museum/gateway-service.log
tail -f /data/logs/emotion-museum/user-service.log
性能优化
- JVM参数调整:修改
.env.test中的JVM配置 - 数据库优化:调整
deploy/mysql/conf.d/my.cnf - Redis优化:调整
deploy/redis/redis.conf - Nginx优化:调整
deploy/nginx/conf.d/default.conf
🔒 安全配置
1. 数据库安全
- 修改默认密码
- 限制访问IP
- 启用SSL连接
2. Redis安全
- 设置密码认证
- 绑定特定IP
- 禁用危险命令
3. Nginx安全
- 启用HTTPS
- 配置安全头
- 限制请求频率
4. 应用安全
- 配置JWT密钥
- 启用CORS限制
- 设置API限流
🚨 故障排除
常见问题
1. 环境安装失败
# 检查系统要求
./install-environment.sh verify
# 手动安装特定组件
./install-environment.sh java
./install-environment.sh docker
2. 数据库初始化失败
# 检查MySQL容器状态
docker logs emotion-mysql
# 重新初始化数据库
./init-database.sh clean
./init-database.sh
3. 服务启动失败
# 查看服务日志
./deploy.sh logs service-name
# 检查端口占用
netstat -tlnp | grep :port
# 重启服务
./deploy.sh restart service-name
4. 网络连接问题
# 检查Docker网络
docker network ls
docker network inspect emotion-test-network
# 检查服务健康状态
./deploy.sh health
5. 配置文件问题
# 检查环境变量
cat .env.test
# 验证配置文件语法
docker-compose -f docker-compose.test.yml config
性能问题
- 内存不足:调整
.env.test中的JVM参数 - 磁盘空间不足:清理Docker资源
./deploy.sh clean - 网络延迟:检查服务间网络连接
日志分析
# 查看详细部署日志
./deploy.sh --debug
# 查看容器启动日志
docker logs emotion-gateway
docker logs emotion-mysql
docker logs emotion-nacos
📞 技术支持
如遇到问题,请按以下步骤排查:
- 查看日志:
./deploy.sh logs --debug - 检查状态:
./deploy.sh status - 验证配置:检查
.env.test配置 - 重新部署:
./deploy.sh clean && ./deploy.sh
📝 注意事项
- ⚠️ 首次部署:请确保修改
.env.test中的SERVER_IP和COZE_API_TOKEN - ⚠️ 生产环境:请修改所有默认密码和密钥
- ⚠️ 防火墙:确保开放必要的端口 (80, 3306, 6379, 8848, 9000-9002)
- ⚠️ 资源要求:确保服务器有足够的内存和磁盘空间
部署完成后,请及时修改默认密码和配置文件中的敏感信息!