GHProxy v1.7.0 更新介绍
我们很高兴地宣布 GHProxy v1.7.0 正式发布!这个版本带来了性能侧与用户侧的优化,主要更新如下:
CHANGLOG (更新日志)
- ADD: 加入
rate
模块,实现内置速率限制 - CHANGE: 优化
blacklist
与whitelist
模块的匹配算法,提升性能;由原先的完整匹配改为切片匹配,提升匹配效率 - ADD: 加入
version
相关表示与API接口 - ADD: 加入
rate
相关API接口 - CHANGE: 优化前端界面,优化部分样式
- CHANGE: 更新相关依赖库
- CHANGE: 对编译打包进行改进,此后不再提供独立可执行文件,请改为拉取
tar.gz
压缩包 - ADD: 在前端新增重定向到转换后的地址的按钮
前端界面:
主要更新
性能优化
我们对blacklist
与whitelist
模块的匹配算法进行了优化,由原先的完整匹配改为切片匹配,提升匹配效率。原先需要完整匹配user/repo
,在改进后,会先对user
进行匹配,匹配成功后再对repo
进行匹配,这样可以减少不必要的匹配。
速率限制
1.7.0 版本加入了rate
模块,实现了内置速率限制,rate
基于Go的golang.org/x/time/rate
实现。
rate
模块的配置如下:
[rateLimit]
enabled = false # 是否开启速率限制
ratePerMinute = 180 # 每分钟限制的请求数量
burst = 5 # 突发请求的数量
版本相关
我们在程序内的main
加入了version string
变量,用于显示当前程序的版本号。并开启了对应的HTTP路径以供前端获取版本号。
前端新增
我们在前端新增了重定向到转换后的地址的按钮,方便部分用户查看与下载文件。
配置变动
在此版本,我们只增加了[rateLimit]
块,您可以直接升级而无需改动配置。此版本并未进行破坏性的配置变动。
[server]
host = "127.0.0.1"
port = 8080
sizeLimit = 125 # MB
[pages]
enabled = false
staticDir = "/data/www"
[log]
logFilePath = "/data/ghproxy/log/ghproxy.log"
maxLogSize = 5 # MB
[cors]
enabled = true
[auth]
authToken = "token"
enabled = false
[blacklist]
blacklistFile = "/data/ghproxy/config/blacklist.json"
enabled = false
[whitelist]
enabled = false
whitelistFile = "/data/ghproxy/config/whitelist.json"
[rateLimit]
enabled = false
ratePerMinute = 180
burst = 5
结语
GHProxy v1.7.0 是一个完善功能的版本,在性能侧与用户侧均进行了优化。
我们感谢所有用户的支持与反馈,并期待 GhProxy v1.7.0 能为您的开发工作带来更大的便利和效率!若此项目对您有所帮助,请不要忘记 star 本项目 ,您的支持是我们前进的动力!
本文最初发表于 WJQSERVER的博客 ;WJQserver-Studio旗下所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载需注明出处!