472 lines
9.8 KiB
Markdown
472 lines
9.8 KiB
Markdown
# 情绪博物馆测试环境部署指南
|
||
|
||
## 📋 概述
|
||
|
||
本文档提供了情绪博物馆项目测试环境的完整部署方案,包括环境安装、数据库初始化、服务部署等全流程。
|
||
|
||
**新版本特性**:
|
||
- ✅ 支持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. 一键部署
|
||
```bash
|
||
# 进入部署目录
|
||
cd emotion-museum-1.0.0-20250713_111829
|
||
|
||
# 一键部署(包含环境安装、数据库初始化、服务部署)
|
||
chmod +x deploy.sh
|
||
./deploy.sh
|
||
```
|
||
|
||
### 3. 分步部署
|
||
```bash
|
||
# 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` 文件:
|
||
|
||
```bash
|
||
# 服务器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`
|
||
|
||
## 🛠️ 管理命令
|
||
|
||
### 部署命令
|
||
|
||
```bash
|
||
# 完整部署(推荐)
|
||
./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 # 启用调试模式
|
||
```
|
||
|
||
### 服务管理
|
||
|
||
```bash
|
||
# 查看服务状态
|
||
./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
|
||
```
|
||
|
||
### 日志管理
|
||
|
||
```bash
|
||
# 查看所有服务日志
|
||
./deploy.sh logs
|
||
|
||
# 跟踪日志输出
|
||
./deploy.sh logs -f
|
||
|
||
# 查看特定服务日志
|
||
./deploy.sh logs gateway
|
||
./deploy.sh logs user-service
|
||
./deploy.sh logs ai-service
|
||
```
|
||
|
||
### 数据管理
|
||
|
||
```bash
|
||
# 备份数据
|
||
./deploy.sh backup
|
||
|
||
# 健康检查
|
||
./deploy.sh health
|
||
|
||
# 更新服务
|
||
./deploy.sh update
|
||
|
||
# 清理资源
|
||
./deploy.sh clean
|
||
```
|
||
|
||
### 独立脚本
|
||
|
||
```bash
|
||
# 环境安装
|
||
./install-environment.sh
|
||
|
||
# 数据库初始化
|
||
./init-database.sh
|
||
|
||
# 服务管理(兼容旧版本)
|
||
./manage.sh start
|
||
./manage.sh stop
|
||
./manage.sh status
|
||
```
|
||
|
||
## 🔧 生产环境配置
|
||
|
||
### 1. 修改环境配置
|
||
|
||
复制并修改环境配置文件:
|
||
|
||
```bash
|
||
# 复制测试环境配置
|
||
cp .env.test .env.prod
|
||
|
||
# 修改生产环境配置
|
||
vim .env.prod
|
||
```
|
||
|
||
关键配置项:
|
||
|
||
```bash
|
||
# 修改为实际服务器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:
|
||
|
||
```bash
|
||
# 放置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. 防火墙配置
|
||
|
||
```bash
|
||
# 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
|
||
```
|
||
|
||
## 📊 监控和维护
|
||
|
||
### 服务监控
|
||
|
||
```bash
|
||
# 查看服务状态
|
||
./deploy.sh status
|
||
|
||
# 健康检查
|
||
./deploy.sh health
|
||
|
||
# 资源使用情况
|
||
docker stats
|
||
|
||
# 查看容器状态
|
||
docker ps -a
|
||
```
|
||
|
||
### 日志管理
|
||
|
||
```bash
|
||
# 查看应用日志
|
||
./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
|
||
```
|
||
|
||
### 性能优化
|
||
|
||
1. **JVM参数调整**:修改 `.env.test` 中的JVM配置
|
||
2. **数据库优化**:调整 `deploy/mysql/conf.d/my.cnf`
|
||
3. **Redis优化**:调整 `deploy/redis/redis.conf`
|
||
4. **Nginx优化**:调整 `deploy/nginx/conf.d/default.conf`
|
||
|
||
## 🔒 安全配置
|
||
|
||
### 1. 数据库安全
|
||
- 修改默认密码
|
||
- 限制访问IP
|
||
- 启用SSL连接
|
||
|
||
### 2. Redis安全
|
||
- 设置密码认证
|
||
- 绑定特定IP
|
||
- 禁用危险命令
|
||
|
||
### 3. Nginx安全
|
||
- 启用HTTPS
|
||
- 配置安全头
|
||
- 限制请求频率
|
||
|
||
### 4. 应用安全
|
||
- 配置JWT密钥
|
||
- 启用CORS限制
|
||
- 设置API限流
|
||
|
||
## 🚨 故障排除
|
||
|
||
### 常见问题
|
||
|
||
#### 1. 环境安装失败
|
||
|
||
```bash
|
||
# 检查系统要求
|
||
./install-environment.sh verify
|
||
|
||
# 手动安装特定组件
|
||
./install-environment.sh java
|
||
./install-environment.sh docker
|
||
```
|
||
|
||
#### 2. 数据库初始化失败
|
||
|
||
```bash
|
||
# 检查MySQL容器状态
|
||
docker logs emotion-mysql
|
||
|
||
# 重新初始化数据库
|
||
./init-database.sh clean
|
||
./init-database.sh
|
||
```
|
||
|
||
#### 3. 服务启动失败
|
||
|
||
```bash
|
||
# 查看服务日志
|
||
./deploy.sh logs service-name
|
||
|
||
# 检查端口占用
|
||
netstat -tlnp | grep :port
|
||
|
||
# 重启服务
|
||
./deploy.sh restart service-name
|
||
```
|
||
|
||
#### 4. 网络连接问题
|
||
|
||
```bash
|
||
# 检查Docker网络
|
||
docker network ls
|
||
docker network inspect emotion-test-network
|
||
|
||
# 检查服务健康状态
|
||
./deploy.sh health
|
||
```
|
||
|
||
#### 5. 配置文件问题
|
||
|
||
```bash
|
||
# 检查环境变量
|
||
cat .env.test
|
||
|
||
# 验证配置文件语法
|
||
docker-compose -f docker-compose.test.yml config
|
||
```
|
||
|
||
### 性能问题
|
||
|
||
1. **内存不足**:调整 `.env.test` 中的JVM参数
|
||
2. **磁盘空间不足**:清理Docker资源 `./deploy.sh clean`
|
||
3. **网络延迟**:检查服务间网络连接
|
||
|
||
### 日志分析
|
||
|
||
```bash
|
||
# 查看详细部署日志
|
||
./deploy.sh --debug
|
||
|
||
# 查看容器启动日志
|
||
docker logs emotion-gateway
|
||
docker logs emotion-mysql
|
||
docker logs emotion-nacos
|
||
```
|
||
|
||
## 📞 技术支持
|
||
|
||
如遇到问题,请按以下步骤排查:
|
||
|
||
1. **查看日志**:`./deploy.sh logs --debug`
|
||
2. **检查状态**:`./deploy.sh status`
|
||
3. **验证配置**:检查 `.env.test` 配置
|
||
4. **重新部署**:`./deploy.sh clean && ./deploy.sh`
|
||
|
||
## 📝 注意事项
|
||
|
||
- ⚠️ **首次部署**:请确保修改 `.env.test` 中的 `SERVER_IP` 和 `COZE_API_TOKEN`
|
||
- ⚠️ **生产环境**:请修改所有默认密码和密钥
|
||
- ⚠️ **防火墙**:确保开放必要的端口 (80, 3306, 6379, 8848, 9000-9002)
|
||
- ⚠️ **资源要求**:确保服务器有足够的内存和磁盘空间
|
||
|
||
---
|
||
|
||
**部署完成后,请及时修改默认密码和配置文件中的敏感信息!**
|