Initial abstract implementation of middlewares

This commit is contained in:
yusing
2024-09-25 14:12:40 +08:00
parent 48bf31fd0e
commit 72df9ff3e4
10 changed files with 244 additions and 17 deletions

View File

@@ -1,8 +1,10 @@
package common
import (
"net"
"os"
"github.com/sirupsen/logrus"
U "github.com/yusing/go-proxy/utils"
)
@@ -12,6 +14,10 @@ var (
ProxyHTTPAddr = GetEnv("GOPROXY_HTTP_ADDR", ":80")
ProxyHTTPSAddr = GetEnv("GOPROXY_HTTPS_ADDR", ":443")
APIHTTPAddr = GetEnv("GOPROXY_API_ADDR", "127.0.0.1:8888")
ProxyHTTPPort = getPort(ProxyHTTPAddr)
ProxyHTTPSPort = getPort(ProxyHTTPSAddr)
ProxyAPIPort = getPort(APIHTTPAddr)
)
func GetEnvBool(key string) bool {
@@ -25,3 +31,11 @@ func GetEnv(key string, defaultValue string) string {
}
return value
}
func getPort(addr string) string {
_, port, err := net.SplitHostPort(addr)
if err != nil {
logrus.Fatalf("Invalid address: %s", addr)
}
return port
}