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
[root@localhost 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
[root@localhost 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 初始化。