diff --git a/internal/outpost/proxyv2/proxyv2.go b/internal/outpost/proxyv2/proxyv2.go index ffc5d90d31..af910e690e 100644 --- a/internal/outpost/proxyv2/proxyv2.go +++ b/internal/outpost/proxyv2/proxyv2.go @@ -195,7 +195,7 @@ func (ps *ProxyServer) Stop() error { } func (ps *ProxyServer) serve(listener net.Listener) { - srv := &http.Server{Handler: ps.mux} + srv := web.Server(ps.mux) // See https://golang.org/pkg/net/http/#Server.Shutdown idleConnsClosed := make(chan struct{}) diff --git a/internal/utils/web/server.go b/internal/utils/web/server.go new file mode 100644 index 0000000000..1d4c1bdc3a --- /dev/null +++ b/internal/utils/web/server.go @@ -0,0 +1,17 @@ +package web + +import ( + "net/http" + "time" +) + +func Server(h http.Handler) *http.Server { + return &http.Server{ + Handler: h, + ReadHeaderTimeout: 5 * time.Second, + ReadTimeout: 30 * time.Second, + WriteTimeout: 60 * time.Second, + IdleTimeout: 120 * time.Second, + MaxHeaderBytes: http.DefaultMaxHeaderBytes, + } +} diff --git a/internal/web/web.go b/internal/web/web.go index 492b624d51..891ab9d505 100644 --- a/internal/web/web.go +++ b/internal/web/web.go @@ -241,9 +241,7 @@ func (ws *WebServer) listenPlain() { } func (ws *WebServer) serve(listener net.Listener) { - srv := &http.Server{ - Handler: ws.mainRouter, - } + srv := web.Server(ws.mainRouter) // See https://golang.org/pkg/net/http/#Server.Shutdown idleConnsClosed := make(chan struct{})