一个专为解决“频繁修改 Nginx 301/302 重定向配置”痛点而设计的、带 Web 边栏的轻量级自托管动态重定向与短链管理平台。
无需每次因为新增一条转发而跑去修改并 nginx -s reload,只需在漂亮的后台一键配置,即刻生效!
项目采用 Monorepo(单一仓库) 架构整合:
/backend:Go (Gin + GORM) 实现的高性能重定向与 API 引擎/frontend:Vue 3 + Vite 实现的现代管理后台
- ⚡ 无痛重定向:支持动态 301/302/307 转发,配置即生效,从此告别频繁修改 Nginx 配置文件。
- 🔗 语义化短链/别名:支持自定义路径(如
/blog-1)转发,完美支持个性化品牌链接 (Vanity URLs)。 - 📊 访问统计:实时统计每个重定向的访问量(PV/UV)并可视化展示。
- ⚙️ 状态管理 & 过滤:一键禁用/启用转发、快速分页查询。
- 🚀 Redis 缓存加速:利用缓存减少数据库查询,提供毫秒级重定向响应。
- 🌍 多语言国际化:前后端均支持多语言切换(i18n)。
easy-redirect/
├── backend/ # 后端 Go 源码
├── frontend/ # 前端 Vue 3 源码
├── docs/ # 部署与配置相关文档
└── README.md # 本文档
- Go 1.18+
- MySQL 5.7+ / 8.0+ (存储短链及统计数据)
- Redis 6.0+ (缓存加速与 UV 统计)
- Node.js 16+
- npm 7+ / pnpm / yarn
| 技术 | 库名 / 框架 | 用途 |
|---|---|---|
| 后端 | Gin | Web 框架 |
| GORM | ORM 数据库操作 | |
| Zap | 高性能日志库 | |
| Cron | 定时任务 | |
| 前端 | Vue 3 + Vite | 现代前端框架与构建工具 |
| Element Plus | 组件库 | |
| Pinia | 状态管理 |
进入后端目录并运行:
cd backend
# 整理并安装依赖
go mod tidy
# 运行服务 (默认监听 http://localhost:8080)
go run cmd/app/main.go# 生产环境配置文件路径
export EASY_REDIRECT_CONFIG_PATH=/easy-redirect/backend/config.yaml
# 生产环境 i18n 文件路径
export EASY_REDIRECT_I18N_PATH=/easy-redirect/backend/i18n根据部署的目标平台在 backend/cmd/app/ 目录下进行编译:
- Linux (AMD64):
GOOS=linux GOARCH=amd64 go build -o easy-redirect-app
- macOS (Apple Silicon):
GOOS=darwin GOARCH=arm64 go build -o easy-redirect-app
- Windows (PowerShell):
$env:GOOS = "linux"; $env:GOARCH = "amd64"; go build -o easy-redirect-app
./easy-redirect-app进入前端目录并运行:
cd frontend
# 安装依赖
npm install
# 启动开发服务器 (默认访问地址: http://localhost:5173)
npm run dev# 类型检查
npm run type-check
# 代码格式检查
npm run lintcd frontend
npm run build构建完成后,静态文件会生成在 frontend/dist/ 目录下,可交由 Nginx 托管。
项目已完整支持 Docker Compose 容器化一键部署。通过容器化的网关(Nginx),前端静态页面(80 端口)、后端服务(8080 端口)以及数据库、缓存都将自动互联并一键运行。
- 本地已安装 Docker 和 Docker Compose。
在项目根目录下,直接执行以下命令:
docker compose up -d生产部署时,建议使用 Nginx 对前端静态资源进行托管,并将动态请求转发给 Go 后端服务。
Nginx 完整配置模板请参考:👉 docs/nginx-example.conf
📬 联系方式:如有问题或建议,请提交 Issue 或联系项目维护者。