English | 中文
- 基础功能
- ✅ oAuth2.0 通用接入
- ✅ 基于 JWT 的认证
- ✅ 基本权限管理、用户组管理
- ✅ 动态配置系统定时任务
- ✅ 方便的日志查看、搜索
- ✅ 线上环境热重启
- ✅ 系统状态监控
- ✅ 请求监控(业务错误、服务器错误)
- ✅ 缓存状态
- ✅ 阈值报警
- Gateway Admin
- ✅ 配置化微服务、HTTP 网关路由
- ✅ 微服务、路由管理
- ✅ HTTP 请求转发
- ✅ 自定义请求头
- ✅ 流量监控
- ✅ 配置化灰度测试
- ✅ 切流比例、时间、灰度策略
- ✅ 灰度监控
- ✅ 可配置微服务内部调用 API
- ✅ 配置化微服务、HTTP 网关路由
- User
- ✅ 授权日志
- ✅ 快速访问网关接入服务
- 🧑💻 测试用例补全
- ✅ 支持 Docker, docker-compose 部署
- 🧑💻 增强 accessToken 管理、安全性检查
- 🧑💻 更强的系统监控
- 请求响应时间
- 可视化接口流量
- 🧑💻 增强网关服务
- 协议转换
- HTTP to gRPC
- HTTP to Dubbo
- SLB (可能会写)
- 协议转换
这里 是一个简单的示例,基于 Niko-Gateway + GitHub oAuth 认证实现的 API 网关。
你可以通过 Niko-Gateway FE 来部署 Niko-Gateway 的前端
- Node.js 14.x
- Typescript 4.5+
- MySQL5.7+
- Redis
- oAuth 服务
git clone --depth 1 https://github.com/legends-killer/niko-gateway.git
注意: 请使用 node.js 14.x (16.x 及更高版本未经测试)
nvm install v14.17.5
// or nvm use v14.x
yarn install
yarn niko // init
yarn stop // 由于node.js的特性,和我不想写初始化脚本,实际上是启动一个单进程的服务器用于初始化,完成后需要手动关闭
-
复制
./config/config.base.js
到./config/config.local.js
-
根据
./config/config.local.js
中的指引配置开发环境 -
启动开发服务器:
yarn dev
注意: npm 脚本中是以多进程启动的,目的是为了在进行 IPC 操作时,及时发现线程数据不同步的问题
-
App will be ready on http://localhost:7001
-
复制
./config/config.base.js
到./config/config.prod.js
-
根据
./config/config.prod.js
中的指引配置生产环境 -
CI 将
ts
构建为js
:yarn ci
-
启动服务器:
yarn start
注意: 生产环境同样需初始化数据库!
请参考 食用方法
注意
- 根据需要修改
./Dockerfile
- 外部端口地址
- 日志目录
- ···
- 根据需要修改
./docker-compose.yml
需要与./Dockerfile
中的配置保持一致- mysql & redis 的配置文件
- 持久化卷的挂在位置
- niko-gateway 日志目录 外部端口等
- 镜像构建时的 http 代理
- ···
参见 生产环境部署
yarn ci
- 构建镜像:
docker-compose build
- 依次启动服务:
docker-compose up -d
yarn clean
You can report issues here