gobetween 开源项目地址 https://github.com/yyyar/gobetween
现代简约负载均衡和云时代的反向代理。
特征
快速L4负载均衡
TCP – 带有可选的PROXY协议支持
TLS – TLS终止+ ACME和TLS代理
UDP
使用TOML或JSON清除和灵活配置
文件 – 从文件读取配置
URL – 通过HTTP查询URL并从响应主体获取配置
Consul – 查询Consul键值存储API以进行配置
管理REST API
系统信息 – 一般服务器信息
配置 – 转储当前配置
服务器 – 列表,创建和删除
统计和指标 – 用于服务器和后端,包括rx / tx,状态,活动连接等。
发现
静态 – 配置文件中的硬编码后端列表
Docker – 根据标签过滤Docker / Swarm API的后端查询
Exec – 执行任意程序并从它的stdout获取后端
JSON – 查询任意http url并从响应json中挑选后端(任何结构)
纯文本 – 查询任意http并从具有自定义正则表达式的响应文本解析后端
SRV – 查询DNS服务器并从SRV记录获取后端
Consul – 为后端查询Consul Services API
LXD – 从LXD查询备份
健康检查
Ping – 简单的TCP ping healtcheck
执行 – 执行任意程序传递主机和端口作为选项,并从标准输出读取healtcheck状态
平衡策略(支持SNI)
权重 – 从基于池的后端相对权重中选择后端
Roundrobin – 简单地从循环顺序选择池中的后端
Iphash – 将客户端路由到基于客户端IP哈希的相同后端
Leastconn – 选择活动连接最少的后端
最小带宽 – 后端带宽最小
与Docker和任何定制系统无缝集成(感谢Exec发现和healtchecks)