我们很高兴地宣布 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: chunckedreqgitreq共用BufferPoolHTTP 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

一致性改进

chunckedreqgitreq共用BufferPoolHTTP Client, 避免重复创建BufferPoolHTTP 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 (默认主题)

ghproxy-demo.png ghproxy-demo-dark.png

Nebula (v2.3.0新增主题)

nebula-dark-v2.3.0.png nebula-light-v2.3.0.png

结语

GHProxy v2.3.0 带来了更多定制化选项, 并对性能和资源消耗进行了优化.

我们感谢所有用户的支持与反馈,并期待 GhProxy v2.3.0 能为您带来更大的便利和效率!若此项目对您有所帮助,请不要忘记 star 本项目,您的支持是我们前进的动力!