From 20ac7dbd917e4dfe538899d66de502cd68b8b553 Mon Sep 17 00:00:00 2001 From: luorijun Date: Fri, 16 May 2025 17:04:03 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E5=8C=85=20client?= =?UTF-8?q?=20=E4=B8=BA=20edge=EF=BC=9B=E9=87=8D=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E5=8C=85=20server=20=E4=B8=BA=20gateway?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/client/main.go | 4 ++-- cmd/server/main.go | 4 ++-- {client => edge}/core/consts.go | 0 client/client.go => edge/edge.go | 10 +++++----- {client => edge}/env/env.go | 0 {client => edge}/geo/geo.go | 2 +- {client => edge}/report/report.go | 4 ++-- {server => gateway}/app/app.go | 2 +- {server => gateway}/core/auth.go | 0 {server => gateway}/core/conn.go | 0 {server => gateway}/core/consts.go | 0 {server => gateway}/core/map.go | 0 {server => gateway}/core/security.go | 2 +- {server => gateway}/debug/debug.go | 0 {server => gateway}/env/env.go | 0 {server => gateway}/fwd/analysis.go | 2 +- {server => gateway}/fwd/auth/auth.go | 4 ++-- {server => gateway}/fwd/ctrl.go | 6 +++--- {server => gateway}/fwd/data.go | 6 +++--- .../fwd/dispatcher/dispatch.go | 8 ++++---- {server => gateway}/fwd/fwd.go | 2 +- {server => gateway}/fwd/http/http.go | 4 ++-- {server => gateway}/fwd/metrics/debug.go | 0 {server => gateway}/fwd/socks/socks.go | 4 ++-- {server => gateway}/fwd/user.go | 8 ++++---- server/server.go => gateway/gateway.go | 20 +++++++++---------- {server => gateway}/globals/redis.go | 2 +- {server => gateway}/log/logs.go | 2 +- {server => gateway}/report/report.go | 6 +++--- {server => gateway}/web/handlers/auth.go | 4 ++-- {server => gateway}/web/handlers/debug.go | 2 +- {server => gateway}/web/router.go | 2 +- {server => gateway}/web/web.go | 2 +- go.mod | 3 --- go.sum | 6 ------ pkg/utils/chan.go | 10 ---------- pkg/utils/sync.go | 9 +++++++++ 37 files changed, 65 insertions(+), 75 deletions(-) rename {client => edge}/core/consts.go (100%) rename client/client.go => edge/edge.go (97%) rename {client => edge}/env/env.go (100%) rename {client => edge}/geo/geo.go (99%) rename {client => edge}/report/report.go (97%) rename {server => gateway}/app/app.go (93%) rename {server => gateway}/core/auth.go (100%) rename {server => gateway}/core/conn.go (100%) rename {server => gateway}/core/consts.go (100%) rename {server => gateway}/core/map.go (100%) rename {server => gateway}/core/security.go (97%) rename {server => gateway}/debug/debug.go (100%) rename {server => gateway}/env/env.go (100%) rename {server => gateway}/fwd/analysis.go (99%) rename {server => gateway}/fwd/auth/auth.go (96%) rename {server => gateway}/fwd/ctrl.go (98%) rename {server => gateway}/fwd/data.go (97%) rename {server => gateway}/fwd/dispatcher/dispatch.go (95%) rename {server => gateway}/fwd/fwd.go (97%) rename {server => gateway}/fwd/http/http.go (98%) rename {server => gateway}/fwd/metrics/debug.go (100%) rename {server => gateway}/fwd/socks/socks.go (99%) rename {server => gateway}/fwd/user.go (92%) rename server/server.go => gateway/gateway.go (91%) rename {server => gateway}/globals/redis.go (93%) rename {server => gateway}/log/logs.go (96%) rename {server => gateway}/report/report.go (95%) rename {server => gateway}/web/handlers/auth.go (89%) rename {server => gateway}/web/handlers/debug.go (96%) rename {server => gateway}/web/router.go (86%) rename {server => gateway}/web/web.go (94%) delete mode 100644 pkg/utils/chan.go diff --git a/cmd/client/main.go b/cmd/client/main.go index ab4a0d9..41249b7 100644 --- a/cmd/client/main.go +++ b/cmd/client/main.go @@ -1,9 +1,9 @@ package main -import "proxy-server/client" +import "proxy-server/edge" func main() { - err := client.Start() + err := edge.Start() if err != nil { println(err.Error()) } diff --git a/cmd/server/main.go b/cmd/server/main.go index 3f3d746..9e35e44 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -1,11 +1,11 @@ package main import ( - "proxy-server/server" + "proxy-server/gateway" ) func main() { - var app = server.New() + var app = gateway.New() var err = app.Run() if err != nil { println(err.Error()) diff --git a/client/core/consts.go b/edge/core/consts.go similarity index 100% rename from client/core/consts.go rename to edge/core/consts.go diff --git a/client/client.go b/edge/edge.go similarity index 97% rename from client/client.go rename to edge/edge.go index 130bac1..dc4da2f 100644 --- a/client/client.go +++ b/edge/edge.go @@ -1,4 +1,4 @@ -package client +package edge import ( "bufio" @@ -12,10 +12,10 @@ import ( _ "net/http/pprof" "os" "os/signal" - "proxy-server/client/core" - "proxy-server/client/env" - "proxy-server/client/geo" - "proxy-server/client/report" + "proxy-server/edge/core" + "proxy-server/edge/env" + "proxy-server/edge/geo" + "proxy-server/edge/report" "proxy-server/pkg/utils" "time" ) diff --git a/client/env/env.go b/edge/env/env.go similarity index 100% rename from client/env/env.go rename to edge/env/env.go diff --git a/client/geo/geo.go b/edge/geo/geo.go similarity index 99% rename from client/geo/geo.go rename to edge/geo/geo.go index c2d1db2..9eaa6e8 100644 --- a/client/geo/geo.go +++ b/edge/geo/geo.go @@ -7,7 +7,7 @@ import ( "io" "net/http" "net/textproto" - "proxy-server/client/env" + "proxy-server/edge/env" "strings" ) diff --git a/client/report/report.go b/edge/report/report.go similarity index 97% rename from client/report/report.go rename to edge/report/report.go index 44b2e20..39e0278 100644 --- a/client/report/report.go +++ b/edge/report/report.go @@ -6,8 +6,8 @@ import ( "fmt" "io" "net/http" - "proxy-server/client/core" - "proxy-server/client/env" + "proxy-server/edge/core" + "proxy-server/edge/env" "strings" ) diff --git a/server/app/app.go b/gateway/app/app.go similarity index 93% rename from server/app/app.go rename to gateway/app/app.go index 8ff7619..fd19cb2 100644 --- a/server/app/app.go +++ b/gateway/app/app.go @@ -1,7 +1,7 @@ package app import ( - "proxy-server/server/core" + "proxy-server/gateway/core" ) var ( diff --git a/server/core/auth.go b/gateway/core/auth.go similarity index 100% rename from server/core/auth.go rename to gateway/core/auth.go diff --git a/server/core/conn.go b/gateway/core/conn.go similarity index 100% rename from server/core/conn.go rename to gateway/core/conn.go diff --git a/server/core/consts.go b/gateway/core/consts.go similarity index 100% rename from server/core/consts.go rename to gateway/core/consts.go diff --git a/server/core/map.go b/gateway/core/map.go similarity index 100% rename from server/core/map.go rename to gateway/core/map.go diff --git a/server/core/security.go b/gateway/core/security.go similarity index 97% rename from server/core/security.go rename to gateway/core/security.go index 428b5be..3db85d8 100644 --- a/server/core/security.go +++ b/gateway/core/security.go @@ -7,7 +7,7 @@ import ( "encoding/base64" "encoding/json" "fmt" - g "proxy-server/server/globals" + g "proxy-server/gateway/globals" "time" ) diff --git a/server/debug/debug.go b/gateway/debug/debug.go similarity index 100% rename from server/debug/debug.go rename to gateway/debug/debug.go diff --git a/server/env/env.go b/gateway/env/env.go similarity index 100% rename from server/env/env.go rename to gateway/env/env.go diff --git a/server/fwd/analysis.go b/gateway/fwd/analysis.go similarity index 99% rename from server/fwd/analysis.go rename to gateway/fwd/analysis.go index 182c1d2..75be0b3 100644 --- a/server/fwd/analysis.go +++ b/gateway/fwd/analysis.go @@ -6,8 +6,8 @@ import ( "fmt" "io" "log/slog" + "proxy-server/gateway/core" "proxy-server/pkg/utils" - "proxy-server/server/core" "strings" "errors" diff --git a/server/fwd/auth/auth.go b/gateway/fwd/auth/auth.go similarity index 96% rename from server/fwd/auth/auth.go rename to gateway/fwd/auth/auth.go index 0a8d106..bdda0d2 100644 --- a/server/fwd/auth/auth.go +++ b/gateway/fwd/auth/auth.go @@ -3,8 +3,8 @@ package auth import ( "fmt" "net" - "proxy-server/server/app" - "proxy-server/server/core" + "proxy-server/gateway/app" + "proxy-server/gateway/core" "strconv" "time" diff --git a/server/fwd/ctrl.go b/gateway/fwd/ctrl.go similarity index 98% rename from server/fwd/ctrl.go rename to gateway/fwd/ctrl.go index 2afe5c8..73cb4b2 100644 --- a/server/fwd/ctrl.go +++ b/gateway/fwd/ctrl.go @@ -9,10 +9,10 @@ import ( "io" "log/slog" "net" + "proxy-server/gateway/app" + "proxy-server/gateway/env" + "proxy-server/gateway/report" "proxy-server/pkg/utils" - "proxy-server/server/app" - "proxy-server/server/env" - "proxy-server/server/report" "strconv" ) diff --git a/server/fwd/data.go b/gateway/fwd/data.go similarity index 97% rename from server/fwd/data.go rename to gateway/fwd/data.go index 160b72d..fcd1a33 100644 --- a/server/fwd/data.go +++ b/gateway/fwd/data.go @@ -8,10 +8,10 @@ import ( "io" "log/slog" "net" + "proxy-server/gateway/debug" + "proxy-server/gateway/env" + "proxy-server/gateway/fwd/metrics" "proxy-server/pkg/utils" - "proxy-server/server/debug" - "proxy-server/server/env" - "proxy-server/server/fwd/metrics" "strconv" "sync" "time" diff --git a/server/fwd/dispatcher/dispatch.go b/gateway/fwd/dispatcher/dispatch.go similarity index 95% rename from server/fwd/dispatcher/dispatch.go rename to gateway/fwd/dispatcher/dispatch.go index 130e7d6..714fb1b 100644 --- a/server/fwd/dispatcher/dispatch.go +++ b/gateway/fwd/dispatcher/dispatch.go @@ -5,11 +5,11 @@ import ( "fmt" "log/slog" "net" + "proxy-server/gateway/core" + "proxy-server/gateway/fwd/http" + "proxy-server/gateway/fwd/metrics" + "proxy-server/gateway/fwd/socks" "proxy-server/pkg/utils" - "proxy-server/server/core" - "proxy-server/server/fwd/http" - "proxy-server/server/fwd/metrics" - "proxy-server/server/fwd/socks" "strconv" "strings" "time" diff --git a/server/fwd/fwd.go b/gateway/fwd/fwd.go similarity index 97% rename from server/fwd/fwd.go rename to gateway/fwd/fwd.go index 9fa47ab..3243b5f 100644 --- a/server/fwd/fwd.go +++ b/gateway/fwd/fwd.go @@ -3,8 +3,8 @@ package fwd import ( "context" "log/slog" + "proxy-server/gateway/core" "proxy-server/pkg/utils" - "proxy-server/server/core" "sync" ) diff --git a/server/fwd/http/http.go b/gateway/fwd/http/http.go similarity index 98% rename from server/fwd/http/http.go rename to gateway/fwd/http/http.go index b464a50..2ea9ea0 100644 --- a/server/fwd/http/http.go +++ b/gateway/fwd/http/http.go @@ -10,8 +10,8 @@ import ( "net" "net/textproto" "net/url" - "proxy-server/server/core" - "proxy-server/server/fwd/auth" + "proxy-server/gateway/core" + "proxy-server/gateway/fwd/auth" "strings" "errors" diff --git a/server/fwd/metrics/debug.go b/gateway/fwd/metrics/debug.go similarity index 100% rename from server/fwd/metrics/debug.go rename to gateway/fwd/metrics/debug.go diff --git a/server/fwd/socks/socks.go b/gateway/fwd/socks/socks.go similarity index 99% rename from server/fwd/socks/socks.go rename to gateway/fwd/socks/socks.go index a5757d6..64c7a06 100644 --- a/server/fwd/socks/socks.go +++ b/gateway/fwd/socks/socks.go @@ -10,9 +10,9 @@ import ( "io" "log/slog" "net" + "proxy-server/gateway/core" + "proxy-server/gateway/fwd/auth" "proxy-server/pkg/utils" - "proxy-server/server/core" - "proxy-server/server/fwd/auth" "slices" ) diff --git a/server/fwd/user.go b/gateway/fwd/user.go similarity index 92% rename from server/fwd/user.go rename to gateway/fwd/user.go index 15df768..05f1b06 100644 --- a/server/fwd/user.go +++ b/gateway/fwd/user.go @@ -6,11 +6,11 @@ import ( "errors" "log/slog" "net" + "proxy-server/gateway/core" + "proxy-server/gateway/env" + "proxy-server/gateway/fwd/dispatcher" + "proxy-server/gateway/fwd/metrics" "proxy-server/pkg/utils" - "proxy-server/server/core" - "proxy-server/server/env" - "proxy-server/server/fwd/dispatcher" - "proxy-server/server/fwd/metrics" "time" ) diff --git a/server/server.go b/gateway/gateway.go similarity index 91% rename from server/server.go rename to gateway/gateway.go index 1401889..9236648 100644 --- a/server/server.go +++ b/gateway/gateway.go @@ -1,4 +1,4 @@ -package server +package gateway import ( "context" @@ -6,16 +6,16 @@ import ( "log/slog" "os" "os/signal" + "proxy-server/gateway/app" + "proxy-server/gateway/core" + "proxy-server/gateway/debug" + "proxy-server/gateway/env" + "proxy-server/gateway/fwd" + g "proxy-server/gateway/globals" + "proxy-server/gateway/log" + "proxy-server/gateway/report" + "proxy-server/gateway/web" "proxy-server/pkg/utils" - "proxy-server/server/app" - "proxy-server/server/core" - "proxy-server/server/debug" - "proxy-server/server/env" - "proxy-server/server/fwd" - g "proxy-server/server/globals" - "proxy-server/server/log" - "proxy-server/server/report" - "proxy-server/server/web" "sync" "time" diff --git a/server/globals/redis.go b/gateway/globals/redis.go similarity index 93% rename from server/globals/redis.go rename to gateway/globals/redis.go index f55b18a..e7b4dd4 100644 --- a/server/globals/redis.go +++ b/gateway/globals/redis.go @@ -4,7 +4,7 @@ import ( "github.com/redis/go-redis/v9" "log/slog" "net" - "proxy-server/server/env" + "proxy-server/gateway/env" ) var Redis *redis.Client diff --git a/server/log/logs.go b/gateway/log/logs.go similarity index 96% rename from server/log/logs.go rename to gateway/log/logs.go index f46a0a8..509b352 100644 --- a/server/log/logs.go +++ b/gateway/log/logs.go @@ -3,7 +3,7 @@ package log import ( "log/slog" "os" - "proxy-server/server/env" + "proxy-server/gateway/env" "time" "github.com/lmittmann/tint" diff --git a/server/report/report.go b/gateway/report/report.go similarity index 95% rename from server/report/report.go rename to gateway/report/report.go index f913329..e97e50c 100644 --- a/server/report/report.go +++ b/gateway/report/report.go @@ -6,9 +6,9 @@ import ( "fmt" "io" "net/http" - "proxy-server/server/app" - "proxy-server/server/core" - "proxy-server/server/env" + "proxy-server/gateway/app" + "proxy-server/gateway/core" + "proxy-server/gateway/env" "strings" ) diff --git a/server/web/handlers/auth.go b/gateway/web/handlers/auth.go similarity index 89% rename from server/web/handlers/auth.go rename to gateway/web/handlers/auth.go index 9800577..3be90ce 100644 --- a/server/web/handlers/auth.go +++ b/gateway/web/handlers/auth.go @@ -2,8 +2,8 @@ package handlers import ( "github.com/gofiber/fiber/v2" - "proxy-server/server/app" - "proxy-server/server/core" + "proxy-server/gateway/app" + "proxy-server/gateway/core" ) type AuthReq struct { diff --git a/server/web/handlers/debug.go b/gateway/web/handlers/debug.go similarity index 96% rename from server/web/handlers/debug.go rename to gateway/web/handlers/debug.go index fe2a69a..c820637 100644 --- a/server/web/handlers/debug.go +++ b/gateway/web/handlers/debug.go @@ -3,7 +3,7 @@ package handlers import ( "fmt" "github.com/gofiber/fiber/v2" - "proxy-server/server/debug" + "proxy-server/gateway/debug" "slices" ) diff --git a/server/web/router.go b/gateway/web/router.go similarity index 86% rename from server/web/router.go rename to gateway/web/router.go index fec3f6f..ffe85fb 100644 --- a/server/web/router.go +++ b/gateway/web/router.go @@ -2,7 +2,7 @@ package web import ( "github.com/gofiber/fiber/v2" - "proxy-server/server/web/handlers" + "proxy-server/gateway/web/handlers" ) func Router(r *fiber.App) { diff --git a/server/web/web.go b/gateway/web/web.go similarity index 94% rename from server/web/web.go rename to gateway/web/web.go index b7e22dd..ee29bff 100644 --- a/server/web/web.go +++ b/gateway/web/web.go @@ -1,7 +1,7 @@ package web import ( - "proxy-server/server/env" + "proxy-server/gateway/env" "strconv" "github.com/gofiber/fiber/v2" diff --git a/go.mod b/go.mod index f1fb11c..50e7e47 100644 --- a/go.mod +++ b/go.mod @@ -10,15 +10,12 @@ require ( github.com/mattn/go-colorable v0.1.14 github.com/redis/go-redis/v9 v9.8.0 github.com/soheilhy/cmux v0.1.5 - gorm.io/gorm v1.25.12 ) require ( github.com/andybalholm/brotli v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/jinzhu/inflection v1.0.0 // indirect - github.com/jinzhu/now v1.1.5 // indirect github.com/klauspost/compress v1.17.9 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect diff --git a/go.sum b/go.sum index 5598f53..857e3ed 100644 --- a/go.sum +++ b/go.sum @@ -12,10 +12,6 @@ github.com/gofiber/fiber/v2 v2.52.6 h1:Rfp+ILPiYSvvVuIPvxrBns+HJp8qGLDnLJawAu27X github.com/gofiber/fiber/v2 v2.52.6/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= -github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= -github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= @@ -57,5 +53,3 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8= -gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ= diff --git a/pkg/utils/chan.go b/pkg/utils/chan.go deleted file mode 100644 index c2f3057..0000000 --- a/pkg/utils/chan.go +++ /dev/null @@ -1,10 +0,0 @@ -package utils - -func WgWait[T WaitGroup](wg T) <-chan struct{} { - ch := make(chan struct{}) - go func() { - wg.Wait() - ch <- struct{}{} - }() - return ch -} diff --git a/pkg/utils/sync.go b/pkg/utils/sync.go index 4e18a32..2c78992 100644 --- a/pkg/utils/sync.go +++ b/pkg/utils/sync.go @@ -33,3 +33,12 @@ func (c *CountWaitGroup) Wait() { func (c *CountWaitGroup) Count() uint64 { return uint64(c.num.Load()) } + +func WgWait[T WaitGroup](wg T) <-chan struct{} { + ch := make(chan struct{}) + go func() { + wg.Wait() + ch <- struct{}{} + }() + return ch +}