Skip to content
/ hgw Public

hgw是由gateway网关服务、manager控制服务构成的一套轻量级网关系统。目前支持http/https协议的服务控制

License

Notifications You must be signed in to change notification settings

dmhao/hgw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hgw

hgw 是一套支持http/https协议的网关系统,由gateway服务、manager服务构成。

开发初衷

产品开发过程中版本多次迭代,缺乏服务管理,通过网关系统的负载均衡转发Api请求 可以清晰了解到各个模块的请求情况,对接口细节进行细致管理,提高服务的可用性。 有了网关还可以增加一些参数绑定、路径替换、权限验证、copy请求数据等功能,方便我们开发调试。

功能特性

  1. 反向代理
  2. 黑名单
  3. 访问日志
  4. 限流
  5. 熔断 【错误熔断、超时熔断、强制熔断】
  6. 负载均衡 【轮询、随机、权重】
  7. 请求路径过滤、路径级私有负载均衡
  8. 访问统计 【访问量、访问时长】
  9. 支持https, 动态设置https证书 【https证书热加载,动态更新】
  10. 访问拷贝 【复制请求数据、返回数据】

测试地址

网关服务:https://test.articlechain.cn/ 控制服务:http://test.articlechain.cn:8080/admin/ 账号:admin 密码:admin

尽量新增数据,请不要删除测试数据

访问统计

domain-metrics

证书在线修改

cert-setting

域名配置

domain-setting

请求路径配置

path-setting

请求拦截的列表

request-copy-list

请求详情数据

request-copy-info

安装

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 初始化管理账号密码。

感谢


x-admin 后台管理html模板

gin Golang Web框架

go-chi Golang Router

jwt-go Golang Jwt

logrus Golang Log

hystrix-go Golang CircuitBreaker

About

hgw是由gateway网关服务、manager控制服务构成的一套轻量级网关系统。目前支持http/https协议的服务控制

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages