Compare commits

..

8 Commits

Author SHA1 Message Date
WJQSERVER
43c576bd82 24w25a 2024-11-29 23:29:45 +08:00
WJQSERVER
580865d082 update caddyfile 2024-11-29 23:29:15 +08:00
WJQSERVER
c2af045019 update deps 2024-11-29 23:28:59 +08:00
WJQSERVER
d297f785db H2C-fix2 2024-11-28 08:58:27 +08:00
WJQSERVER
f6f1ff7362 update README.md 2024-11-25 10:43:05 +08:00
WJQSERVER
920b025fda 1.7.5 2024-11-25 10:30:06 +08:00
WJQSERVER
59428e47aa 24w24c 2024-11-25 10:26:48 +08:00
WJQSERVER
e3f9a0d4c6 update deps 2024-11-25 10:25:12 +08:00
10 changed files with 52 additions and 10 deletions

View File

@@ -1,5 +1,24 @@
# 更新日志
24w25a
---
- PRE-RELEASE: 此版本是v1.7.6的预发布版本,请勿在生产环境中使用
- 说明: 本版本为v1.7.6的其中一个候选与开发测试版本,相关改动不一定实装
- FIX: 进一步修正 H2C相关配置逻辑问题
- CHANGE: 对Caddy配置进行实验性修改,优化H2C配置
- CHANGE: 更新相关依赖库
v1.7.5
---
- FIX: 修复 v1.7.4 版本 Docker 镜像默认配置导致的 403 问题
- ADD: `Rate`模块加入`IP`速率限制,可限制单个IP的请求速率 (需要更多测试)
- CHANGE: 处理积攒的依赖库更新
24w24c
---
- PRE-RELEASE: 此版本是v1.7.5的预发布版本,请勿在生产环境中使用
- CHANGE: 更新依赖
24w24b
---
- PRE-RELEASE: 此版本是v1.7.5的预发布版本,请勿在生产环境中使用

View File

@@ -1 +1 @@
24w24b
24w25a

View File

@@ -81,7 +81,7 @@ wget -O install.sh https://raw.githubusercontent.com/WJQSERVER-STUDIO/ghproxy/ma
host = "127.0.0.1" # 监听地址
port = 8080 # 监听端口
sizeLimit = 125 # 125MB
enableH2C = false # 是否开启H2C传输
enableH2C = true # 是否开启H2C传输(latest和dev版本请开启)
[pages]
enabled = false # 是否开启内置静态页面(Docker版本请关闭此项)
@@ -109,6 +109,7 @@ whitelistFile = "/data/ghproxy/config/whitelist.json" # 白名单文件路径
[rateLimit]
enabled = false # 是否开启速率限制
rateMrthod = "total" # "ip" or "total" 速率限制方式
ratePerMinute = 180 # 每分钟限制请求数量
burst = 5 # 突发请求数量
```

View File

@@ -1 +1 @@
1.7.4
1.7.5

View File

@@ -13,6 +13,9 @@
roll_keep 10
}
}
servers :80 {
protocals h1 h2c
}
}
(log) {
@@ -68,8 +71,11 @@
:80 {
reverse_proxy {
to h2c://127.0.0.1:8080
to 127.0.0.1:8080
import header_realip
transport http {
versions 1.1 2 h2c
}
}
import log ghproxy
import cache 0s 300s

View File

@@ -19,7 +19,7 @@ type ServerConfig struct {
Port int `toml:"port"`
Host string `toml:"host"`
SizeLimit int `toml:"sizeLimit"`
EnableH2C bool `toml:"enableH2C"`
EnableH2C string `toml:"enableH2C"`
}
type PagesConfig struct {

View File

@@ -2,7 +2,7 @@
host = "127.0.0.1"
port = 8080
sizeLimit = 125 # MB
enableH2C = true
enableH2C = "on" # "on" or "off"
[pages]
enabled = false

6
go.mod
View File

@@ -11,7 +11,7 @@ require (
require (
github.com/andybalholm/brotli v1.1.1 // indirect
github.com/bytedance/sonic v1.12.4 // indirect
github.com/bytedance/sonic v1.12.5 // indirect
github.com/bytedance/sonic/loader v0.2.1 // indirect
github.com/cloudflare/circl v1.5.0 // indirect
github.com/cloudwego/base64x v0.1.4 // indirect
@@ -23,7 +23,7 @@ require (
github.com/go-playground/validator/v10 v10.23.0 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/goccy/go-json v0.10.3 // indirect
github.com/google/pprof v0.0.0-20241122213907-cbe949e5a41b // indirect
github.com/google/pprof v0.0.0-20241128161848-dc51965c6481 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/json-iterator/go v1.1.12 // indirect
@@ -36,7 +36,7 @@ require (
github.com/onsi/ginkgo/v2 v2.22.0 // indirect
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
github.com/quic-go/qpack v0.5.1 // indirect
github.com/quic-go/quic-go v0.48.1 // indirect
github.com/quic-go/quic-go v0.48.2 // indirect
github.com/refraction-networking/utls v1.6.7 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.12 // indirect

6
go.sum
View File

@@ -4,6 +4,8 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X
github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA=
github.com/bytedance/sonic v1.12.4 h1:9Csb3c9ZJhfUWeMtpCDCq6BUoH5ogfDFLUgQ/jG+R0k=
github.com/bytedance/sonic v1.12.4/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk=
github.com/bytedance/sonic v1.12.5 h1:hoZxY8uW+mT+OpkcUWw4k0fDINtOcVavEsGfzwzFU/w=
github.com/bytedance/sonic v1.12.5/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk=
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/bytedance/sonic/loader v0.2.1 h1:1GgorWTqf12TA8mma4DDSbaQigE2wOgQo7iCjjJv3+E=
github.com/bytedance/sonic/loader v0.2.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
@@ -48,6 +50,8 @@ github.com/google/pprof v0.0.0-20241101162523-b92577c0c142 h1:sAGdeJj0bnMgUNVeUp
github.com/google/pprof v0.0.0-20241101162523-b92577c0c142/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/pprof v0.0.0-20241122213907-cbe949e5a41b h1:SXO0REt4iu865upYCk8aKBBJQ4BqoE0ReP23ClMu60s=
github.com/google/pprof v0.0.0-20241122213907-cbe949e5a41b/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/pprof v0.0.0-20241128161848-dc51965c6481 h1:yudKIrXagAOl99WQzrP1gbz5HLB9UjhcOFnPzdd6Qec=
github.com/google/pprof v0.0.0-20241128161848-dc51965c6481/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -88,6 +92,8 @@ github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI=
github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg=
github.com/quic-go/quic-go v0.48.1 h1:y/8xmfWI9qmGTc+lBr4jKRUWLGSlSigv847ULJ4hYXA=
github.com/quic-go/quic-go v0.48.1/go.mod h1:yBgs3rWBOADpga7F+jJsb6Ybg1LSYiQvwWlLX+/6HMs=
github.com/quic-go/quic-go v0.48.2 h1:wsKXZPeGWpMpCGSWqOcqpW2wZYic/8T3aqiOID0/KWE=
github.com/quic-go/quic-go v0.48.2/go.mod h1:yBgs3rWBOADpga7F+jJsb6Ybg1LSYiQvwWlLX+/6HMs=
github.com/refraction-networking/utls v1.6.7 h1:zVJ7sP1dJx/WtVuITug3qYUq034cDq9B2MR1K67ULZM=
github.com/refraction-networking/utls v1.6.7/go.mod h1:BC3O4vQzye5hqpmDTWUqi4P5DDhzJfkV1tdqtawQIH0=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=

12
main.go
View File

@@ -91,9 +91,19 @@ func init() {
gin.SetMode(gin.ReleaseMode)
router = gin.Default()
if cfg.Server.EnableH2C {
//H2C默认值为true而后遵循cfg.Server.EnableH2C的设置
if cfg.Server.EnableH2C == "on" {
router.UseH2C = true
} else if cfg.Server.EnableH2C == "" {
router.UseH2C = true
} else {
router.UseH2C = false
}
/*if !cfg.Server.EnableH2C {
router.UseH2C = false
} else {
router.UseH2C = true
}*/
setupApi(cfg, router, version)