项目简介
本项目基于 Node.js 框架构建,借助守护进程和工作进程协作,实现对 API 服务的管理与流量转发。能依据请求中的 cookie
信息,将请求精准转发到对应的 API 服务,同时提供在线配置页面和 RESTful API,可进行服务的注册、删除等操作,实现环境隔离。
项目的主要特性和功能
- 守护进程读取配置文件,提供在线配置页面,配置变化时重启工作进程服务器。
- 工作进程服务器根据请求的
cookie
信息,将请求转发到指定 API 服务。 - 利用不同的
cookie
标识,实现不同应用和接口环境的隔离。 - 提供一组 RESTful API,便于结合代码托管工具进行自动化操作。
- 通过
config
和manifest
两个 JSON 配置文件,灵活配置端口、API 服务地址等信息。 - 支持传入额外参数扫描 GitLab 仓库,依据分支命名规则自动移除不需要的服务。
安装使用步骤
前提条件
确保已安装 Node.js,版本高于 16.7.0,建议使用最新的 LTS 版本。
安装依赖
下载项目源码文件后,在项目根目录执行以下命令安装依赖:
bash
pnpm install
若未安装 pnpm
,也可使用 npm
:
bash
npm install
配置文件
配置文件存于 config
目录下,包含 config
和 manifest
文件,按需修改其中的配置信息。
启动项目
启动时需配置临时环境变量,以下是基于 powershell
的语法示例,其他平台需自行替换:
生产环境
pwsh
$env:NODE_ENV="production";node.\dist\daemon.mjs
日志记录(仅调试使用)
pwsh
$env:DEBUG="*";node.\dist\daemon.mjs
启动参数(gitlab 支持)
pwsh
$env:NODE_ENV="production";node.\dist\daemon.mjs http://192.168.0.1:8080@1234@xxxxx http://192.168.0.1:8080@2222@xxxxx
使用系统
通过首次访问流量转发服务器、清空 cookie
或在 URL 中添加 ?gatex=true
,可在选择 app 页面中启用所需环境。同时,可使用守护进程提供的 RESTful API 进行服务的注册、删除等操作。
压力测试
压力测试需单独部署进行,以免受转发服务器性能限制。
API 文档
待办事项
- 服务注册时记录时间,渲染使用时间降序排列
- 支持配置不同项目的回退 API 标识,最终使用 config.json 中的配置
- 支持 SSR APP
- 更改
app
api
换成数字 ID,包括spa
ssr
api
三种类型 - 插件化的标识管理器
- 移动到 monorepo 中
- 提供 GUI 配置页面
- 保留分支与分支匹配模式支持配置文件配置
- 基于分支的工作流放入 docs 目录
- 完善 API 服务仓库和应用仓库的查看、添加、删除功能
- 实现重启 gatex 功能
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】