littlebot
Published on 2025-04-08 / 3 Visits
0

【源码】基于 Node.js 框架的 API 服务守护与转发系统

项目简介

本项目基于 Node.js 框架构建,借助守护进程和工作进程协作,实现对 API 服务的管理与流量转发。能依据请求中的 cookie 信息,将请求精准转发到对应的 API 服务,同时提供在线配置页面和 RESTful API,可进行服务的注册、删除等操作,实现环境隔离。

项目的主要特性和功能

  1. 守护进程读取配置文件,提供在线配置页面,配置变化时重启工作进程服务器。
  2. 工作进程服务器根据请求的 cookie 信息,将请求转发到指定 API 服务。
  3. 利用不同的 cookie 标识,实现不同应用和接口环境的隔离。
  4. 提供一组 RESTful API,便于结合代码托管工具进行自动化操作。
  5. 通过 configmanifest 两个 JSON 配置文件,灵活配置端口、API 服务地址等信息。
  6. 支持传入额外参数扫描 GitLab 仓库,依据分支命名规则自动移除不需要的服务。

安装使用步骤

前提条件

确保已安装 Node.js,版本高于 16.7.0,建议使用最新的 LTS 版本。

安装依赖

下载项目源码文件后,在项目根目录执行以下命令安装依赖: bash pnpm install 若未安装 pnpm,也可使用 npmbash npm install

配置文件

配置文件存于 config 目录下,包含 configmanifest 文件,按需修改其中的配置信息。

启动项目

启动时需配置临时环境变量,以下是基于 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 文档

待办事项

  • 服务注册时记录时间,渲染使用时间降序排列
  • 支持配置不同项目的回退 API 标识,最终使用 config.json 中的配置
  • 支持 SSR APP
  • 更改 app api 换成数字 ID,包括 spa ssr api 三种类型
  • 插件化的标识管理器
  • 移动到 monorepo 中
  • 提供 GUI 配置页面
  • 保留分支与分支匹配模式支持配置文件配置
  • 基于分支的工作流放入 docs 目录
  • 完善 API 服务仓库和应用仓库的查看、添加、删除功能
  • 实现重启 gatex 功能

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】