FastGateway 发布 v0.0.0.5


FastGateway 发布v0.0.0.5

  • 修复构建错误

  • 修复docker-compose执行目录

  • 修改请求来源分析数据列表展示

  • update README.md.

  • 增加默认证书

  • 修复构建脚本目录错误

FastGateway提供了基本的管理服务,提供简单的登录授权,和实时配置管理,从而实现动态路由的管理。

支持功能

  • 登录授权
  • 动态路由管理
  • 动态配置证书管理
  • dashboard监控
  • 静态文件服务代理
  • 穿透隧道功能
  • 出入口流量监控
  • 请求来源分析
  • 动态插件管理

技术栈

后端技术栈

  • Asp.Net 8.0 用于提供基础服务

  • Yarp 用于提供反向代理服务

  • FreeSql 用于提供数据库服务

  • JWT 用于提供登录授权服务

  • MiniApis 提供WebApi服务

前端技术栈

  • reset-css 用于重置浏览器默认样式

  • axios 用于发送http请求

  • semi 用于提供基础组件

  • react-router-dom 用于路由管理

镜像执行指令

mkdir data
docker run -d --restart always --name gateway-api -p 8000:8000 -p 8200:8080 -p 8300:8081 -v $(pwd)/data:/data/ registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-api
docker run -d --restart always --privileged --name gateway-web -p 10800:80 -e api_url=http://localhost:8000 registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-web

Docker-Compose文件


services:
gateway-api:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-api
  restart: always
  container_name: gateway-api
  environment:
    USER: root
    PASS: Aa010426.
  ports:
    - 8000:8000 # 提供给web端调用的管理接口
    - 8200:8080 # Http代理端口
    - 8300:8081 # Https代理端口
  volumes:
    - ./data:/data/ # 请注意手动创建data目录,负责在Linux下可能出现权限问题导致无法写入

gateway-web:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-web
  restart: always
  build:
    context: ../web
    dockerfile: Dockerfile
  privileged: true
  environment:
    api_url: http://localhost:8000
  ports:
    - 10800:80

如果并没有提供账号密码则默认

账号:root

密码:Aa010426.

自带管理界面的docker-compose


services:
gateway-api:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-api:8.0-admin
  restart: always
  container_name: gateway-api
  build:
    context: ../
    dockerfile: src/FastGateway/Dockerfile-admin
  ports:
    - 8000:8000 # 提供给web端调用的管理接口
    - 8200:8080 # Http代理端口
    - 8300:8081/udp # Https代理端口
    - 8300:8081/tcp # Https代理端口 Http3需要开启UDP和TCP,请注意防火墙设置是否允许
  volumes:
    - ./data:/data/ # 请注意手动创建data目录,负责在Linux下可能出现权限问题导致无法写入

支持HTTP3的docker-compose

services:
gateway-api:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-api:8.0-http3
  restart: always
  container_name: gateway-api
  build:
    context: ../
    dockerfile: src/FastGateway/Dockerfile-http3
  ports:
    - 8000:8000 # 提供给web端调用的管理接口
    - 8200:8080 # Http代理端口
    - 8300:8081/udp # Https代理端口
    - 8300:8081/tcp # Https代理端口 Http3需要开启UDP和TCP,请注意防火墙设置是否允许
  volumes:
    - ./data:/data/ # 请注意手动创建data目录,负责在Linux下可能出现权限问题导致无法写入

gateway-web:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-web
  restart: always
  build:
    context: ../web
    dockerfile: Dockerfile
  privileged: true
  environment:
    api_url: http://localhost:8000
  ports:
    - 10800:80

替换默认的https证书

由于需要使用https,为了方便系统默认提供了一个pfx证书,如果你需要提供的话可以按照以下操作进行,如果是Docker执行的话证书的目录则是 /app/certificates/gateway.pfx


services:
gateway-api:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-api
  restart: always
  container_name: gateway-api
  ports:
    - 8000:8000 # 提供给web端调用的管理接口
    - 8200:8080 # Http代理端口
    - 8300:8081 # Https代理端口
  environment:
    USER: root
    PASS: Aa010426.
    HTTPS_PASSWORD: dd666666
    HTTPS_FILE: gateway.pfx
  ports:
    - 8200:8080
  volumes:
    - ./data:/data/
    - ./app/certificates:/app/certificates

gateway-web:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-web
  restart: always
  container_name: gateway-web
  privileged: true
  environment:
    api_url: http://localhost:8000
  ports:
    - 10800:80

参考上面的docker-compose文件,我们提供了俩个环境变量HTTPS_PASSWORDHTTPS_FILE

HTTPS_FILE

  • 在系统中已经指定了容器的/app/certificates目录,你只想要挂在目录中的文件名即可

HTTPS_PASSWORD

  • Pfx证书的密码,如果修改了证书请填写证书的密码。

/app/certificates

  • 这个是系统证书默认存放目录,如果映射了目录则需要提供自己的证书。

使用隧道

services:
gateway-api:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-api
  restart: always
  container_name: gateway-api
  environment:
    USER: root
    PASS: Aa010426.
    HTTPS_PASSWORD: dd666666
    TUNNEL_PASSWORD: dd666666
    HTTPS_FILE: gateway.pfx
  ports:
    - 8000:8000 # 提供给web端调用的管理接口
    - 8200:8080 # Http代理端口
    - 8300:8081 # Https代理端口
  volumes:
    - ./data:/data/
    - ./app/certificates:/app/certificates

gateway-web:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-web
  restart: always
  container_name: gateway-web
  privileged: true
  environment:
    api_url: http://localhost:8000
  ports:
    - 10800:80

增加TUNNEL_PASSWORD环境变量,默认为空不设置密码

下载隧道客户端 https://gitee.com/hejiale010426/Gateway/releases 然后解压压缩包,打开appsettings.json文件修改Tunnel节点的Url,如果Gateway使用了TUNNEL_PASSWORD,那么你的URL应该是https://localhost:8081/api/gateway/connect-h2?host=backend1.app&password=dd666666 host是在集群中的集群端点的域名,这个域名就是定义到我们的隧道客户端的host的这个参数,请保证值的唯一性,当绑定集群的路由匹配成功以后则会访问图片定义的端点,如果并没有存在节点那么他会直接代理。

 

出入流量监控

使用环境变量控制是否启用流量监控,使用环境变量ENABLE_FLOW_MONITORING设置我们是否启用流量监控,如果为空则默认启动流量监控,然后可以打开我们的控制面板查看流量监控的数据。


services:
gateway-api:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-api
  restart: always
  container_name: gateway-api
  environment:
    USER: root
    PASS: Aa010426.
    HTTPS_PASSWORD: dd666666
    HTTPS_FILE: gateway.pfx
    ENABLE_FLOW_MONITORING: true
  ports:
    - 8000:8000 # 提供给web端调用的管理接口
    - 8200:8080 # Http代理端口
    - 8300:8081 # Https代理端口
  volumes:
    - ./data:/data/
    - ./app/certificates:/app/certificates

gateway-web:
  image: registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-web
  restart: always
  container_name: gateway-web
  privileged: true
  environment:
    api_url: http://localhost:8000
  ports:
    - 10800:80

第三方下载

  • ip2region.xdb 用于ip离线归属地

Gitee:https://gitee.com/hejiale010426/FastGateway

Github:https://github.com/239573049/FastGateway


相關推薦

2023-02-25

开源 3D 建模软件 Blender 三年前开始执行每季度发布一次重要更新的策略,也就是每年发布 4 个重要版本。现在官方决定转变为每年只发布 3 个重要版本。 根据团队的介绍,未来 Blender 每年仅发布 3 个重要版本,其中一个将成为

2023-11-27

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技

2023-03-27

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Ja

2023-06-08

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技

2022-11-28

ner 元数建模软件 (v4 版本)介绍:PDManer [元数建模]-v4.0.0 发布:一款简单好用的数据库建模平台 4.2.2 (含 4.2.1 版本) 版本升级内容清单 1. 修复代码生成是索引信息错误的问题 2. 修复某些场景下重复粘贴的问题 3. 生成 html

2023-07-23

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer元数建模-v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用React+Electron+Java技术体系

2022-11-19

curl 7 的版本号已迭代到 7.86.0 —— 离发布 7.100.0 只差十多个版本,但 curl 作者 Daniel Stenberg 不希望在次版本号中使用三位数,因为他担心这会引发不必要的问题(可参考 Chrome 为发布 100 版本时所做的准备),甚至可能会

2023-01-08

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技

2023-10-15

Python 3.13.0 首个 alpha 已发布,目前处于非常早期的开发阶段。 本次发布的 Python 3.13 a1 是计划发布的七个 alpha 版本中的第一个。 发布 alpha 是为了更方便地测试新功能、修复错误,以及测试发布过程。请注意,这是一个预览版

2023-04-29

Debian 发布团队宣布了 Debian 12.0“Bookworm”的暂定发布日期.Debian 邮件列表显示,Debian 发布团队的目标是在 6 月 10 日正式发布 Debian 12.0,如果一切顺利,它将在一个多月内发布。 为了 Debian 12.0 的顺利发布,该版本的完全冻结日

2023-03-20

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技

2022-12-05

语言商城 CMS 企业建站系统。 MyCms 基于 Apache2.0 开源协议发布,免费且可商业使用,欢迎持续关注我们。 V4.1 更新内容 新增:自媒体模块 新增:自媒体账号管理 新增:自媒体文章管理 新增:自媒体模板生成文章 新增:自媒

2023-02-26

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技

2022-02-16

Laravel 9 正式版已发布,新功能包括:使用 PHP v8.0、控制器路由组、新的默认 Ignition 错误页面、Laravel Scout 数据库引擎、集成 Symfony Mailer、Flysystem 3.x、改进的 Eloquent 访问器/修改器,以及更多功能。 全新的首页设计 发