golang開源的Gateway閘道器,目前支援http/https協議。
阿新 • • 發佈:2018-12-04
hgw
【http-reverse_proxy, http/https-gateway,hot-reload】
hgw是由gateway閘道器服務、manager控制服務構成的一套輕量級網關係統。目前支援http/https協議的服務控制。
hgw通過【ETCD】儲存服務資料,狀態監控。
功能
- 反向代理
- 黑名單
- 訪問日誌
- 限流
- 熔斷 【錯誤熔斷、超時熔斷、強制熔斷】
- 負載均衡 【輪詢、隨機、權重】
- 訪問統計 【訪問量、訪問時長】
- 支援https, 動態設定https證書 【https證書熱載入,動態更新】
測試地址
閘道器服務:https://test.articlechain.cn/
控制服務:http://test.articlechain.cn:8080/admin/ 賬號:admin 密碼:admin
安裝
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 初始化。