mirror of
https://github.com/caddyserver/caddy.git
synced 2025-02-24 16:59:00 +01:00
caddyhttp: New idle_timeout default of 5m
This commit is contained in:
parent
4fc570711e
commit
1438e4dbc8
2 changed files with 15 additions and 2 deletions
|
@ -250,6 +250,13 @@ func (app *App) Provision(ctx caddy.Context) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("server %s: setting up TLS connection policies: %v", srvName, err)
|
return fmt.Errorf("server %s: setting up TLS connection policies: %v", srvName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if there is no idle timeout, set a sane default; users have complained
|
||||||
|
// before that aggressive CDNs leave connections open until the server
|
||||||
|
// closes them, so if we don't close them it leads to resource exhaustion
|
||||||
|
if srv.IdleTimeout == 0 {
|
||||||
|
srv.IdleTimeout = defaultIdleTimeout
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
@ -458,6 +465,12 @@ func (app *App) httpsPort() int {
|
||||||
return app.HTTPSPort
|
return app.HTTPSPort
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// defaultIdleTimeout is the default HTTP server timeout
|
||||||
|
// for closing idle connections; useful to avoid resource
|
||||||
|
// exhaustion behind hungry CDNs, for example (we've had
|
||||||
|
// several complaints without this).
|
||||||
|
const defaultIdleTimeout = caddy.Duration(5 * time.Minute)
|
||||||
|
|
||||||
// Interface guards
|
// Interface guards
|
||||||
var (
|
var (
|
||||||
_ caddy.App = (*App)(nil)
|
_ caddy.App = (*App)(nil)
|
||||||
|
|
|
@ -59,8 +59,8 @@ type Server struct {
|
||||||
WriteTimeout caddy.Duration `json:"write_timeout,omitempty"`
|
WriteTimeout caddy.Duration `json:"write_timeout,omitempty"`
|
||||||
|
|
||||||
// IdleTimeout is the maximum time to wait for the next request
|
// IdleTimeout is the maximum time to wait for the next request
|
||||||
// when keep-alives are enabled. If zero, ReadTimeout is used.
|
// when keep-alives are enabled. If zero, a default timeout of
|
||||||
// If both are zero, there is no timeout.
|
// 5m is applied to help avoid resource exhaustion.
|
||||||
IdleTimeout caddy.Duration `json:"idle_timeout,omitempty"`
|
IdleTimeout caddy.Duration `json:"idle_timeout,omitempty"`
|
||||||
|
|
||||||
// MaxHeaderBytes is the maximum size to parse from a client's
|
// MaxHeaderBytes is the maximum size to parse from a client's
|
||||||
|
|
Loading…
Reference in a new issue