Files
AIGC/demo/deploy_baota/ROUTE_ANALYSIS.md
2025-11-13 17:01:39 +08:00

313 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目路由分析报告
## 统一前缀路由
### API 路由前缀
**主要前缀:`/api/`**
所有后端 REST API 接口统一使用 `/api/` 作为前缀。
## 详细路由分类
### 1. REST API 路由(`/api/`
#### 认证授权模块
- `/api/auth/**` - 用户认证(登录、注册)
- `/api/verification/**` - 验证码服务
- `/api/email/**` - 邮件服务
- `/api/tencent/**` - 腾讯云服务集成
#### 视频生成模块
- `/api/text-to-video/**` - 文生视频
- `/api/image-to-video/**` - 图生视频
- `/api/storyboard-video/**` - 分镜视频
#### 用户作品模块
- `/api/works/**` - 用户作品管理
#### 支付订单模块
- `/api/payments/**` - 支付相关
- `/api/payments/alipay/**` - 支付宝支付
- `/api/orders/**` - 订单管理
#### 会员积分模块
- `/api/members/**` - 会员管理
- `/api/points/**` - 积分系统
#### 任务管理模块
- `/api/task-queue/**` - 任务队列
- `/api/task-status/**` - 任务状态
- `/api/cleanup/**` - 任务清理
#### 管理后台模块
- `/api/admin/**` - 管理员接口
- `/api/dashboard/**` - 数据仪表盘
- `/api/analytics/**` - 数据分析
#### 系统设置模块
- `/api/api-key/**` - API 密钥管理
- `/api/prompt/**` - 提示词优化
#### 测试诊断模块
- `/api/test/**` - 测试接口
- `/api/diagnostic/**` - 诊断接口
- `/api/polling/**` - 轮询测试
- `/api/polling-diagnostic/**` - 轮询诊断
- `/api/monitor/**` - 监控接口
#### 公共接口
- `/api/public/**` - 公共API无需认证
- `/api/health/**` - 健康检查接口
### 2. 页面路由(非 API
#### 用户页面
- `/login` - 登录页面
- `/register` - 注册页面
- `/payment/**` - 支付页面
- `/orders/**` - 订单页面
#### 管理员页面
- `/settings/**` - 系统设置页面(管理员)
- `/users/**` - 用户管理页面(管理员)
#### 开发工具
- `/h2-console/**` - H2 数据库控制台(开发环境)
### 3. API 文档路由
- `/swagger-ui.html` - Swagger UI 主页
- `/swagger-ui/**` - Swagger UI 资源
- `/v3/api-docs/**` - OpenAPI 文档 JSON
- `/swagger-resources/**` - Swagger 资源
- `/webjars/**` - Web 资源库
### 4. 静态资源路由
- `/css/**` - CSS 样式文件
- `/js/**` - JavaScript 文件
- `/uploads/**` - 上传文件
## 路由代理配置
### Nginx 代理配置
#### 1. API 代理(推荐配置)
```nginx
# API 代理到后端
location /api/ {
proxy_pass http://172.22.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 超时设置(视频生成可能需要较长时间)
proxy_connect_timeout 30s;
proxy_send_timeout 900s;
proxy_read_timeout 900s;
# 支持大文件上传
client_max_body_size 600M;
}
```
#### 2. Swagger UI 代理(可选,用于生产环境)
```nginx
# API 文档代理
location ~ ^/(swagger-ui|v3/api-docs|swagger-resources|webjars) {
proxy_pass http://172.22.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
```
#### 3. 上传文件代理
```nginx
# 上传文件代理
location /uploads/ {
proxy_pass http://172.22.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 缓存设置
expires 7d;
add_header Cache-Control "public, immutable";
}
```
#### 4. WebSocket 支持(如果需要)
```nginx
location /ws/ {
proxy_pass http://172.22.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
```
### Apache 代理配置(如果使用 Apache
```apache
# 启用代理模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# API 代理
ProxyPass /api/ http://172.22.0.1:8080/
ProxyPassReverse /api/ http://172.22.0.1:8080/
# Swagger UI 代理
ProxyPass /swagger-ui/ http://172.22.0.1:8080/swagger-ui/
ProxyPassReverse /swagger-ui/ http://172.22.0.1:8080/swagger-ui/
ProxyPass /v3/api-docs/ http://172.22.0.1:8080/v3/api-docs/
ProxyPassReverse /v3/api-docs/ http://172.22.0.1:8080/v3/api-docs/
```
## 权限配置
### 无需认证(公开访问)
```
/login
/register
/api/public/**
/api/auth/**
/api/verification/**
/api/email/**
/api/tencent/**
/api/test/**
/api/orders/stats
/api/payments/alipay/notify
/api/payments/alipay/return
/swagger-ui/**
/v3/api-docs/**
```
### 需要认证
```
/api/orders/**(除 /api/orders/stats
/api/payments/**(除支付宝回调)
/api/image-to-video/**
/api/text-to-video/**
/api/works/**
/api/points/**
/api/members/**
```
### 需要管理员权限
```
/api/dashboard/**
/api/admin/**
/settings/**
/users/**
```
## 完整 Nginx 配置示例
```nginx
server {
listen 80;
server_name localhost;
root /www/wwwroot/your-domain.com;
index index.html index.htm;
# 开启gzip压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
# 前端路由支持History模式
location / {
try_files $uri $uri/ /index.html;
}
# API 代理到后端(主要路由)
location /api/ {
proxy_pass http://172.22.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 超时设置
proxy_connect_timeout 30s;
proxy_send_timeout 900s;
proxy_read_timeout 900s;
# 支持大文件上传
client_max_body_size 600M;
}
# Swagger UI 代理
location ~ ^/(swagger-ui|v3/api-docs|swagger-resources|webjars) {
proxy_pass http://172.22.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 上传文件代理
location /uploads/ {
proxy_pass http://172.22.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
expires 7d;
add_header Cache-Control "public, immutable";
}
# 静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}
```
## 宝塔面板配置
在宝塔面板中配置反向代理:
1. 进入网站设置 → 反向代理
2. 添加反向代理规则:
- **代理名称**: API代理
- **目标URL**: http://172.22.0.1:8080
- **发送域名**: $host
- **代理路径**: /api/
- **缓存**: 关闭
## 总结
- **统一API前缀**: `/api/`
- **后端服务地址**: `http://172.22.0.1:8080`
- **主要代理路径**: `/api/``http://172.22.0.1:8080/`
- **文档访问**: `/swagger-ui.html`
- **特殊配置**: 需要支持大文件上传600M和长时间请求15分钟