我们很高兴地宣布 GHProxy v2.3.0 正式发布!这个版本带来了更多自定义参数与前端切换支持
CHANGELOG (更新日志)#
- CHANGE: 使用
touka-httpc
封装HTTP Client
, 更新到v0.2.0
版本, 参看touka-httpc
- CHANGE: 重构前端页面, 见#49
- CHANGE: 重构
blacklist
实现
- CHANGE: 优化404处理
- CHANGE: 重构
whitelist
实现
- CHANGE: 对
proxy
进行结构性调整
- CHANGE:
chunckedreq
与gitreq
共用BufferPool
和HTTP Client
- CHANGE: 新增
HTTP Client
配置块
- CHANGE: 加入内置主题配置, 支持通过配置切换主题
- CHANGE: 将许可证转为WJQserver Studio License 2.0
项目地址
Demo
TG讨论群组
主要变更#
Touka-HTTPC#
对net/http
标准库进行包装, 使得更加便利, 其支持通过反射以合并叠加Transport
配置, 同时对参数进行了一定程度上的优化
详情参看touka-httpc
前端页面#
加入新的前端页面主题Nebula, 并支持通过配置切换主题, 详情参看#49
1
2
3
4
|
[pages]
enabled = false # 是否开启外置静态资源目录
theme = "bootstrap" # "bootstrap" or "nebula" bootstrap为默认主题 nebula为v2.3.0新增主题
staticDir = "/data/www" # 外置静态资源目录 默认无需配置
|
默认情况下, 主题为Bootstrap
感谢清韵的PR
黑白名单#
对黑白名单进行了重构, 切换到Map(Go1.24 SwissTable), 提供 O(1) 时间复杂度的查找, 分离用户级和仓库级的黑白名单,提供更精细的访问控制
提高配置兼容性, 您无需变动黑白名单json格式即可使用
改进Proxy结构#
将proxy
模块进行结构性调整, 将Transport
与部分初始化迁移至proxy/httpc.go
内
一致性改进#
chunckedreq
与gitreq
共用BufferPool
和HTTP Client
, 避免重复创建BufferPool
和HTTP Client
造成额外的资源消耗
新增HTTP Client配置块#
开放httpc.Transport
配置, 允许用户自定义HTTP Client
配置, 如MaxIdleConns
, MaxIdleConnsPerHost
, MaxConnsPerHost
对性能或资源占用相关存在优化需求的用户可以切换到advanced
模式, 自行调整参数
1
2
3
4
5
|
[httpc]
mode = "auto" # "auto" or "advanced" HTTP客户端模式 自动/高级模式
maxIdleConns = 100 # only for advanced mode 仅用于高级模式
maxIdleConnsPerHost = 60 # only for advanced mode 仅用于高级模式
maxConnsPerHost = 0 # only for advanced mode 仅用于高级模式
|
完整配置#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
[server]
host = "0.0.0.0" # 监听地址
port = 8080 # 监听端口
sizeLimit = 125 # 125MB
enableH2C = "on" # 是否开启H2C传输(latest和dev版本请开启) on/off
[httpc]
mode = "auto" # "auto" or "advanced" HTTP客户端模式 自动/高级模式
maxIdleConns = 100 # only for advanced mode 仅用于高级模式
maxIdleConnsPerHost = 60 # only for advanced mode 仅用于高级模式
maxConnsPerHost = 0 # only for advanced mode 仅用于高级模式
[pages]
enabled = false # 是否开启外置静态页面(非特殊需求请关闭此项)
theme = "bootstrap" # "bootstrap" or "nebula" 内置主题
staticPath = "/data/www" # 静态页面文件路径
[log]
logFilePath = "/data/ghproxy/log/ghproxy.log" # 日志文件路径
maxLogSize = 5 # MB 日志文件最大大小
level = "info" # 日志级别 dump, debug, info, warn, error, none
[cors]
enabled = true # 是否开启跨域
[auth]
authMethod = "parameters" # 鉴权方式,支持parameters,header
authToken = "token" # 用户鉴权Token
enabled = false # 是否开启用户鉴权
[blacklist]
blacklistFile = "/data/ghproxy/config/blacklist.json" # 黑名单文件路径
enabled = false # 是否开启黑名单
[whitelist]
enabled = false # 是否开启白名单
whitelistFile = "/data/ghproxy/config/whitelist.json" # 白名单文件路径
[rateLimit]
enabled = false # 是否开启速率限制
rateMethod = "total" # "ip" or "total" 速率限制方式
ratePerMinute = 180 # 每分钟限制请求数量
burst = 5 # 突发请求数量
[outbound]
enabled = false # 是否使用自定义代理出站
url = "socks5://127.0.0.1:1080" # "http://127.0.0.1:7890" 支持Socks5/HTTP(S)出站传输
|
Bootstrap (默认主题)#

Nebula (v2.3.0新增主题)#

GHProxy v2.3.0 带来了更多定制化选项, 并对性能和资源消耗进行了优化.
我们感谢所有用户的支持与反馈,并期待 GhProxy v2.3.0 能为您带来更大的便利和效率!若此项目对您有所帮助,请不要忘记 star 本项目,您的支持是我们前进的动力!