當前位置: 妍妍網 > 碼農

​FastGateway 釋出v0.0.0.5

2024-02-26碼農
  • 修復構建錯誤

  • 修復 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 -p8000:8000 -p8200:8080 -p8300:8081 -v$(pwd)/data:/data/ registry.cn-shenzhen.aliyuncs.com/tokengo/gateway-api
    docker run -d--restart always --privileged--name gateway-web -p10800:80 -eapi_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_PASSWORD HTTPS_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