diff --git a/cmd/common-main.go b/cmd/common-main.go index b495821c8..69dfaa60f 100644 --- a/cmd/common-main.go +++ b/cmd/common-main.go @@ -41,6 +41,7 @@ import ( "github.com/minio/minio/pkg/certs" "github.com/minio/minio/pkg/console" "github.com/minio/minio/pkg/env" + "github.com/minio/minio/pkg/handlers" ) // serverDebugLog will enable debug printing @@ -51,10 +52,19 @@ func init() { logger.RegisterError(config.FmtError) rand.Seed(time.Now().UTC().UnixNano()) + globalDNSCache = xhttp.NewDNSCache(10*time.Second, 10*time.Second, logger.LogOnceIf) initGlobalContext() + globalForwarder = handlers.NewForwarder(&handlers.Forwarder{ + PassHost: true, + RoundTripper: newGatewayHTTPTransport(1 * time.Hour), + Logger: func(err error) { + logger.LogIf(GlobalContext, err) + }, + }) + globalReplicationState = newReplicationState() globalTransitionState = newTransitionState() diff --git a/cmd/generic-handlers.go b/cmd/generic-handlers.go index 46e9ab4c5..02f8d4e98 100644 --- a/cmd/generic-handlers.go +++ b/cmd/generic-handlers.go @@ -30,7 +30,6 @@ import ( xhttp "github.com/minio/minio/cmd/http" "github.com/minio/minio/cmd/http/stats" "github.com/minio/minio/cmd/logger" - "github.com/minio/minio/pkg/handlers" ) // Adds limiting body size middleware @@ -532,14 +531,6 @@ func setRequestValidityHandler(h http.Handler) http.Handler { }) } -var fwd = handlers.NewForwarder(&handlers.Forwarder{ - PassHost: true, - RoundTripper: newGatewayHTTPTransport(1 * time.Hour), - Logger: func(err error) { - logger.LogIf(GlobalContext, err) - }, -}) - // setBucketForwardingHandler middleware forwards the path style requests // on a bucket to the right bucket location, bucket to IP configuration // is obtained from centralized etcd configuration service. @@ -589,7 +580,7 @@ func setBucketForwardingHandler(h http.Handler) http.Handler { r.URL.Scheme = "https" } r.URL.Host = getHostFromSrv(sr) - fwd.ServeHTTP(w, r) + globalForwarder.ServeHTTP(w, r) return } h.ServeHTTP(w, r) @@ -639,7 +630,7 @@ func setBucketForwardingHandler(h http.Handler) http.Handler { r.URL.Scheme = "https" } r.URL.Host = getHostFromSrv(sr) - fwd.ServeHTTP(w, r) + globalForwarder.ServeHTTP(w, r) return } h.ServeHTTP(w, r) diff --git a/cmd/globals.go b/cmd/globals.go index 16a1ba043..94976ebde 100644 --- a/cmd/globals.go +++ b/cmd/globals.go @@ -25,6 +25,7 @@ import ( "github.com/minio/minio-go/v7/pkg/set" "github.com/minio/minio/pkg/bucket/bandwidth" + "github.com/minio/minio/pkg/handlers" humanize "github.com/dustin/go-humanize" "github.com/minio/minio/cmd/config/cache" @@ -285,6 +286,8 @@ var ( globalProxyTransport http.RoundTripper globalDNSCache *xhttp.DNSCache + + globalForwarder *handlers.Forwarder // Add new variable global values here. )