1. 程式人生 > >golang開源的Gateway閘道器,目前支援http/https協議。

golang開源的Gateway閘道器,目前支援http/https協議。

hgw

【http-reverse_proxy, http/https-gateway,hot-reload】

https://github.com/dmhao/hgw

hgw是由gateway閘道器服務、manager控制服務構成的一套輕量級網關係統。目前支援http/https協議的服務控制。

hgw通過【ETCD】儲存服務資料,狀態監控。

功能

  1. 反向代理
  2. 黑名單
  3. 訪問日誌
  4. 限流
  5. 熔斷 【錯誤熔斷、超時熔斷、強制熔斷】
  6. 負載均衡 【輪詢、隨機、權重】
  7. 訪問統計 【訪問量、訪問時長】
  8. 支援https, 動態設定https證書 【https證書熱載入,動態更新】

測試地址

閘道器服務:https://test.articlechain.cn/
控制服務:http://test.articlechain.cn:8080/admin/ 賬號:admin 密碼:admin

metricspng

domainpng

pathpng

certpng

安裝

1. 獲取hgw程式碼

go get github.com/dmhao/hgw

gateway資料夾是閘道器服務的核心程式碼

manager資料夾是控制服務的核心程式碼

2. 編譯gateway

go build gateway.go

3. 編譯manager

go build manager.go

4. 執行gateway

[[email protected] gateway]# ./gateway -h
usage: gateway --ser-name=SER-NAME --addr=ADDR --etcd=ETCD [<flags>]

Flags:
  -h, --help               Show context-sensitive help (also try --help-long and --help-man).
      --ser-name=SER-NAME  SerName: gateway listen addr
      --addr=ADDR          Addr: gateway listen addr
      --tls-addr=""        Tls-Addr: gateway tls listen addr
      --etcd=ETCD          Addr: etcd server addr
      --u=""               Username: etcd username
      --p=""               Password: etcd password
      --version            Show application version.
引數

–ser-name 【gateway服務的識別名稱】

–addr 【gateway http服務的監聽地址】

–tls-addr 【gateway https服務的監聽地址】

–etcd 【連線etcd服務的地址】

–u 【連線etcd服務的賬戶】

–p 【連線etcd服務的密碼】

./gateway --ser-name=gateway-1 --addr=0.0.0.0:80 --etcd=127.0.0.1:2379

5. 執行manager

[[email protected] manager]# ./manager -h
usage: manager --addr=ADDR --etcd=ETCD [<flags>]

Flags:
  -h, --help       Show context-sensitive help (also try --help-long and --help-man).
      --addr=ADDR  gateway listen addr
      --etcd=ETCD  etcd server addr
      --u=""       Username: etcd username
      --p=""       Password: etcd password
引數

–addr 【manager 服務的監聽地址】

–etcd 【連線etcd服務的地址】

–u 【連線etcd服務的賬戶】

–p 【連線etcd服務的密碼】

./manager --addr=0.0.0.0:8080 --etcd=127.0.0.1:2379

6. 使用

訪問 manager監聽的服務地址+/admin/ 管理gateway服務。

: 第一次訪問未初始化後臺賬戶請先訪問 /admin/init.html 初始化。