修復構建錯誤
修復
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