Timeout
The [timeout] section sets connection timeouts and graceful shutdown behavior. Static: applied at startup.
| Key | Default | Description |
|---|---|---|
upstream_connect_ms |
absent (no timeout) | TCP connect to backend (ms). Omitted = no limit. |
proxy_idle_ms |
20000 |
Inbound idle timeout (ms). HTTP/1.1 header read timeout, and the HTTP/2 PING interval when keep_alive.enabled is true. |
tls_handshake_secs |
5 |
Max time for the client TLS handshake, including the ClientHello read. |
connection_handling_secs |
300 |
Max time for full request/response on a connection. |
drain_delay_secs |
0 |
Phase 1 of shutdown: fail /ready (proxy_draining) while the traffic port still accepts. 0 = fail readiness and stop accept together. Size so drain_delay_secs + shutdown_secs is below the orchestrator stop grace. |
shutdown_secs |
30 |
Phase 2: stop accept and drain in-flight connections. /live stays 200 until exit. |
timeout: upstream_connect_ms: 5000 proxy_idle_ms: 20000 drain_delay_secs: 1 tls_handshake_secs: 5 connection_handling_secs: 300 shutdown_secs: 30 keep_alive: enabled: true upstream_idle_timeout: 20 client_tcp_idle_secs: 20 tcp_interval_secs: 10[timeout]upstream_connect_ms = 5000proxy_idle_ms = 20000drain_delay_secs = 1tls_handshake_secs = 5connection_handling_secs = 300shutdown_secs = 30
[timeout.keep_alive]enabled = trueupstream_idle_timeout = 20client_tcp_idle_secs = 20tcp_interval_secs = 10On SIGTERM / SIGINT, /ready fails first (proxy_draining) for drain_delay_secs, then accept stops and in-flight work drains for shutdown_secs. The observability listener stays up until after drain. See Telemetry for /ready bodies.
[timeout.keep_alive]
Section titled “[timeout.keep_alive]”HTTP/1.1 keep-alive, HTTP/2 PING, and TCP keepalive on the client socket and on connections to backends. HTTP/2 stays multiplexed either way. enabled = false turns off HTTP/1.1 persistence, the PINGs, and TCP keepalive in both directions.
| Key | Default | Description |
|---|---|---|
enabled |
true |
HTTP/1.1 persistent connections, HTTP/2 PING (interval is proxy_idle_ms), and TCP keepalive on the client and on backends. |
upstream_idle_timeout |
20 |
Seconds a connection to a backend can sit idle before TCP keepalive probes start. |
client_tcp_idle_secs |
20 |
Seconds a client connection can sit idle before TCP keepalive probes start. Clients that disappear without closing get dropped. |
tcp_interval_secs |
10 |
Seconds between those probes, on the client socket and on backend sockets. |
Related
Section titled “Related”- Listen: bind addresses and accept backlog
- Configuration overview