系统架构
Redirect 采用 前后端分离 架构,三个服务独立容器化部署。 后端为纯 API 服务,门户端和管理后台均为 Nginx 静态资源 + API 反向代理。
整体架构
┌─────────────────────────────────────────────────┐
│ 浏览器客户端 │
│ 管理后台 (Vue 3 SPA) / 重定向请求 │
└───────────────────┬─────────────────────────────┘
│ HTTP
┌───────────────────┴─────────────────────────────┐
│ Nginx 门户端容器 (:80) │
│ ┌─────────────────────────────────────────────┐ │
│ │ 静态资源服务 │ /api/ 反向代理到后端 │ │
│ └──────────────────┬──────────────────────────┘ │
└─────────────────────┬───────────────────────────┘
│ HTTP (:12328)
┌─────────────────────┴───────────────────────────┐
│ Go API 服务 (:12328) │
│ ┌─────────────────────────────────────────────┐ │
│ │ Router (Gin) │ │
│ │ /api/v1/* (管理API) /:prefix/:code (重定向) │ │
│ └──────────────────┬──────────────────────────┘ │
│ ┌──────────────────┴──────────────────────────┐ │
│ │ Middleware 层 │ │
│ │ JWT 认证 · CORS · 限流 │ │
│ └──────────────────┬──────────────────────────┘ │
│ ┌──────────────────┴──────────────────────────┐ │
│ │ Handler 层 │ │
│ │ 请求解析 · 参数校验 · 响应封装 │ │
│ └──────────────────┬──────────────────────────┘ │
│ ┌──────────────────┴──────────────────────────┐ │
│ │ Service 层 │ │
│ │ 业务逻辑 · 健康检查 · 统计计算 │ │
│ └──────────────────┬──────────────────────────┘ │
│ ┌──────────────────┴──────────────────────────┐ │
│ │ Repository 层 │ │
│ │ 数据访问 · GORM 操作 │ │
│ └──────────────────┬──────────────────────────┘ │
│ ┌──────────────────┴──────────────────────────┐ │
│ │ Model 层 │ │
│ │ 数据结构 · 表定义 │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────┬───────────────────────────┘
│
┌─────────────────────┴───────────────────────────┐
│ MySQL / MariaDB / PostgreSQL │
└─────────────────────────────────────────────────┘ 服务组成
| 服务 | 镜像 | 端口 | 说明 |
|---|---|---|---|
| 后端 API | redirect-go/server | 12328 | Go 语言,Gin 框架 |
| 门户端 | redirect-go/portal | 80 | Vue 3 SPA,Nginx 静态资源 |
| 管理后台 | redirect-go/admin | 81 | Vue 3 SPA,Nginx 静态资源 |
| 数据库 | MySQL / MariaDB / PostgreSQL | 3306 / 5432 | 用户可任选 |
API 路由
/api/v1/*— 管理 API(认证、项目、链接、统计等)/api/v1/auth/login— 登录接口/api/v1/auth/register— 注册接口/api/v1/projects— 项目管理接口/api/v1/links— 链接管理接口/api/v1/stats— 统计接口/health— 健康检查接口/r/:prefix/:code— 文件下载重定向(公开访问)
统一响应规范
{
"code": 200, // 业务状态码
"message": "success", // 提示信息
"data": { ... } // 数据体
} 门户端和管理后台容器通过环境变量BACKEND_HOST/BACKEND_PORT配置后端地址,无需修改 Nginx 配置文件。
了解更多部署细节,请阅读 部署总览。