Skip to content

Easy HTTP Proxy, 1 week project ~这是一个1周时间从零设计到实现的具有负载均衡,健康检测等功能的简单 HTTP 代理🍭🍭

Notifications You must be signed in to change notification settings

ncghost1/EH-Proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EH-Proxy

Easy HTTP Proxy, 1 week project~

这是一个1周时间从零设计到实现的具有负载均衡,健康检测功能的简单代理项目,目前仅支持 HTTP 协议。🍭🍭

项目功能

  • 负载均衡:支持加权轮询(round robin),加权随机,最小活跃请求三种常用负载均衡算法。
  • 健康检测:对服务器进行健康检测,及时发现处于故障或离线的服务器,该功能可自定义全局或对某个服务器的开关。
  • 熔断机制:将请求超时的服务器设为下线状态并中止请求,可自定义全局开关。
  • 动态更新:通过连接 EH-Proxy-Manager 并输入命令,可以动态添加,删除服务器,更新服务器权重等。
  • URL 路径检测:在配置文件中可填写支持的 URL 路径,支持完全匹配和前缀匹配(在配置文件中输入前缀匹配的路径时最后加星号 *),可自定义全局开关,关闭该功能将转发任何路径的请求给服务器。
  • 优雅关闭:系统信号中断(如Ctrl+C)或是通过 EH-Proxy-Manager 的 shutdown 命令,都会先进行释放资源以及将当前所代理的服务器状态写入本地配置文件的工作,之后才停止进程。

文件结构

  • cmd:存放 main 文件
  • EH-proxy-client:客户端文件
  • pkg:proxy 相关功能文件
  • testServer:模拟服务器文件,可用于测试

为什么做这个项目?

至于为什么我突然搞出个这玩意🤣,是因为今年学校期末实践周项目,选题可以是嵌入式/云计算,因为最近总在写 Golang,所以我选择云计算并想出了一个能在两周内快速搞定的项目,于是经过了一周时间(6.28-7.4)的从零瞎搞之路,EH-Proxy(Easy HTTP Proxy)完成了👏👏

About

Easy HTTP Proxy, 1 week project ~这是一个1周时间从零设计到实现的具有负载均衡,健康检测等功能的简单 HTTP 代理🍭🍭

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages