From 7c68809f4e13a7ac7c9e216a69410e7c1966c1df Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Tue, 15 Jun 2021 14:54:48 -0600 Subject: reverseproxy: Fix overwriting of max_idle_conns_per_host (closes #4201) Also split the Caddyfile subdirective keepalive_idle_conns into two properties so the conns and conns_per_host can be set separately. This is technically a breaking change, but probably anyone who this breaks already had a broken config anyway, and silently fixing it won't help them fix their configs. --- modules/caddyhttp/reverseproxy/httptransport.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'modules/caddyhttp/reverseproxy/httptransport.go') diff --git a/modules/caddyhttp/reverseproxy/httptransport.go b/modules/caddyhttp/reverseproxy/httptransport.go index fdaf56e..f217a4b 100644 --- a/modules/caddyhttp/reverseproxy/httptransport.go +++ b/modules/caddyhttp/reverseproxy/httptransport.go @@ -62,9 +62,6 @@ type HTTPTransport struct { // Maximum number of connections per host. Default: 0 (no limit) MaxConnsPerHost int `json:"max_conns_per_host,omitempty"` - // Maximum number of idle connections per host. Default: 0 (uses Go's default of 2) - MaxIdleConnsPerHost int `json:"max_idle_conns_per_host,omitempty"` - // How long to wait before timing out trying to connect to // an upstream. DialTimeout caddy.Duration `json:"dial_timeout,omitempty"` @@ -197,7 +194,6 @@ func (h *HTTPTransport) NewTransport(ctx caddy.Context) (*http.Transport, error) return conn, nil }, MaxConnsPerHost: h.MaxConnsPerHost, - MaxIdleConnsPerHost: h.MaxIdleConnsPerHost, ResponseHeaderTimeout: time.Duration(h.ResponseHeaderTimeout), ExpectContinueTimeout: time.Duration(h.ExpectContinueTimeout), MaxResponseHeaderBytes: h.MaxResponseHeaderSize, @@ -412,13 +408,13 @@ type KeepAlive struct { // How often to probe for liveness. ProbeInterval caddy.Duration `json:"probe_interval,omitempty"` - // Maximum number of idle connections. + // Maximum number of idle connections. Default: 0, which means no limit. MaxIdleConns int `json:"max_idle_conns,omitempty"` - // Maximum number of idle connections per upstream host. + // Maximum number of idle connections per host. Default: 0, which uses Go's default of 2. MaxIdleConnsPerHost int `json:"max_idle_conns_per_host,omitempty"` - // How long connections should be kept alive when idle. + // How long connections should be kept alive when idle. Default: 0, which means no timeout. IdleConnTimeout caddy.Duration `json:"idle_timeout,omitempty"` } -- cgit v1.2.3