From 9bd497b836726a9eda42a005440c4dca29731a17 Mon Sep 17 00:00:00 2001 From: Mechiel Lukkien Date: Tue, 28 Mar 2023 17:16:05 +0200 Subject: [PATCH] set timeouts for webserver, for idle connections and reading http request header --- http/web.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/http/web.go b/http/web.go index 86c4ad4..9886446 100644 --- a/http/web.go +++ b/http/web.go @@ -510,9 +510,11 @@ func listen1(ip string, port int, tlsConfig *tls.Config, name string, kinds []st } server := &http.Server{ - Handler: handler, - TLSConfig: tlsConfig, - ErrorLog: golog.New(mlog.ErrWriter(xlog.Fields(mlog.Field("pkg", "net/http")), mlog.LevelInfo, protocol+" error"), "", 0), + Handler: handler, + TLSConfig: tlsConfig, + ReadHeaderTimeout: 30 * time.Second, + IdleTimeout: 65 * time.Second, // Chrome closes connections after 60 seconds, firefox after 115 seconds. + ErrorLog: golog.New(mlog.ErrWriter(xlog.Fields(mlog.Field("pkg", "net/http")), mlog.LevelInfo, protocol+" error"), "", 0), } serve := func() { err := server.Serve(ln)