mirror of
https://github.com/WJQSERVER-STUDIO/ghproxy.git
synced 2026-02-03 00:01:10 +08:00
25w29b
This commit is contained in:
parent
5e0f95dae3
commit
6fb7e1150e
7 changed files with 55 additions and 23 deletions
|
|
@ -6,6 +6,12 @@
|
|||
- FIX: 修正非预期的header操作行为
|
||||
- CHANGE: 合并header相关逻辑, 避免多次操作
|
||||
- CHANGE: 对editor模式下的input进行处置, 增加隐式关闭处理
|
||||
- CHANGE: 增加`netlib`配置项
|
||||
|
||||
25w29b - 2025-04-19
|
||||
---
|
||||
- PRE-RELEASE: 此版本是v3.0.3预发布版本,请勿在生产环境中使用;
|
||||
- CHANGE: 增加`netlib`配置项
|
||||
|
||||
25w29a - 2025-04-17
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
25w29a
|
||||
25w29b
|
||||
|
|
@ -22,15 +22,20 @@ type Config struct {
|
|||
|
||||
/*
|
||||
[server]
|
||||
host = "0.0.0.0" # 监听地址
|
||||
port = 8080 # 监听端口
|
||||
sizeLimit = 125 # 125MB
|
||||
H2C = true # 是否开启H2C传输
|
||||
host = "0.0.0.0"
|
||||
port = 8080
|
||||
netlib = "netpoll" # "netpoll" / "std" "standard" "net/http" "net"
|
||||
sizeLimit = 125 # MB
|
||||
memLimit = 0 # MB
|
||||
H2C = true
|
||||
cors = "*" # "*"/"" -> "*" ; "nil" -> "" ;
|
||||
debug = false
|
||||
*/
|
||||
|
||||
type ServerConfig struct {
|
||||
Port int `toml:"port"`
|
||||
Host string `toml:"host"`
|
||||
NetLib string `toml:"netlib"`
|
||||
SizeLimit int `toml:"sizeLimit"`
|
||||
MemLimit int64 `toml:"memLimit"`
|
||||
H2C bool `toml:"H2C"`
|
||||
|
|
@ -180,6 +185,7 @@ func DefaultConfig() *Config {
|
|||
Server: ServerConfig{
|
||||
Port: 8080,
|
||||
Host: "0.0.0.0",
|
||||
NetLib: "netpoll",
|
||||
SizeLimit: 125,
|
||||
MemLimit: 0,
|
||||
H2C: true,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
[server]
|
||||
host = "0.0.0.0"
|
||||
port = 8080
|
||||
netlib = "netpoll" # "netpoll" / "std" "standard" "net/http" "net"
|
||||
sizeLimit = 125 # MB
|
||||
memLimit = 0 # MB
|
||||
H2C = true
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
[server]
|
||||
host = "127.0.0.1"
|
||||
port = 8080
|
||||
netlib = "netpoll" # "netpoll" / "std" "standard" "net/http" "net"
|
||||
sizeLimit = 125 # MB
|
||||
memLimit = 0 # MB
|
||||
H2C = true
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
[server]
|
||||
host = "0.0.0.0"
|
||||
port = 8080
|
||||
netlib = "netpoll" # "netpoll" / "std" "standard" "net/http" "net"
|
||||
sizeLimit = 125 # MB
|
||||
memLimit = 0 # MB
|
||||
H2C = true
|
||||
|
|
@ -83,6 +84,10 @@ url = "socks5://127.0.0.1:1080" # "http://127.0.0.1:7890"
|
|||
* 类型: 整数 (`int`)
|
||||
* 默认值: `8080`
|
||||
* 说明: 设置 `ghproxy` 监听的端口号。
|
||||
* `netlib`: 底层网络库。
|
||||
* 类型: 字符串 (`string`)
|
||||
* 默认值: `""` (HertZ默认处置)
|
||||
* 说明: `"std"` `"standard"` `"net/http"` `"net"` 均会被设置为go标准库`net/http`, 设置为`"netpoll"`或`""`会由`HertZ`默认逻辑处理
|
||||
* `sizeLimit`: 请求体大小限制。
|
||||
* 类型: 整数 (`int`)
|
||||
* 默认值: `125` (MB)
|
||||
|
|
|
|||
29
main.go
29
main.go
|
|
@ -19,15 +19,14 @@ import (
|
|||
"ghproxy/rate"
|
||||
|
||||
"github.com/WJQSERVER-STUDIO/go-utils/logger"
|
||||
"github.com/hertz-contrib/http2/factory"
|
||||
|
||||
"github.com/cloudwego/hertz/pkg/app"
|
||||
"github.com/cloudwego/hertz/pkg/app/middlewares/server/recovery"
|
||||
"github.com/cloudwego/hertz/pkg/app/server"
|
||||
"github.com/cloudwego/hertz/pkg/common/adaptor"
|
||||
"github.com/cloudwego/hertz/pkg/common/hlog"
|
||||
|
||||
"github.com/cloudwego/hertz/pkg/network/standard"
|
||||
"github.com/hertz-contrib/http2/factory"
|
||||
|
||||
_ "net/http/pprof"
|
||||
)
|
||||
|
|
@ -362,25 +361,22 @@ func init() {
|
|||
}
|
||||
|
||||
func main() {
|
||||
// 如果 showVersion 为 true,则在 init 阶段已退出,这里直接返回
|
||||
if showVersion || showHelp {
|
||||
return
|
||||
}
|
||||
logDebug("Run Mode: %s", runMode)
|
||||
|
||||
// 确保在程序配置加载且非版本显示模式下执行
|
||||
if cfg == nil {
|
||||
fmt.Println("Config not loaded, exiting.")
|
||||
return // 如果配置未加载,则不继续执行
|
||||
return
|
||||
}
|
||||
|
||||
addr := fmt.Sprintf("%s:%d", cfg.Server.Host, cfg.Server.Port)
|
||||
|
||||
if cfg.Server.NetLib == "std" || cfg.Server.NetLib == "standard" || cfg.Server.NetLib == "net" || cfg.Server.NetLib == "net/http" {
|
||||
if cfg.Server.H2C {
|
||||
r = server.New(
|
||||
server.WithHostPorts(addr),
|
||||
server.WithH2C(true),
|
||||
// server.WithALPN(true),
|
||||
server.WithHostPorts(addr),
|
||||
server.WithTransport(standard.NewTransporter),
|
||||
)
|
||||
r.AddProtocol("h2", factory.NewServerFactory())
|
||||
|
|
@ -390,6 +386,23 @@ func main() {
|
|||
server.WithTransport(standard.NewTransporter),
|
||||
)
|
||||
}
|
||||
} else if cfg.Server.NetLib == "netpoll" || cfg.Server.NetLib == "" {
|
||||
if cfg.Server.H2C {
|
||||
r = server.New(
|
||||
server.WithH2C(true),
|
||||
server.WithHostPorts(addr),
|
||||
)
|
||||
r.AddProtocol("h2", factory.NewServerFactory())
|
||||
} else {
|
||||
r = server.New(
|
||||
server.WithHostPorts(addr),
|
||||
)
|
||||
}
|
||||
} else {
|
||||
logError("Invalid NetLib: %s", cfg.Server.NetLib)
|
||||
fmt.Printf("Invalid NetLib: %s\n", cfg.Server.NetLib)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// 添加Recovery中间件
|
||||
r.Use(recovery.Recovery())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue