Global settings
Use at most one global_settings entry across all configuration files. Omitted
admission caps are unlimited; transport windows and buffers have finite defaults.
An omitted, null, or empty global_settings entry uses those defaults.
This is a configuration fragment, not a listener:
- global_settings: max_connections: 1024 max_streams_per_connection: 128 reload_grace_secs: 300 rule_cache_dir: ./rule-cacherule_cache_dir is optional. Omit it or set it to null to retain remote rules
only in memory. One configured directory serves all remote sources; per-source
cache directories and standalone rule_cache_dir entries are not accepted.
Its path is relative to the declaring configuration file. See
remote rule sources for ownership, permissions,
bootstrap, and restart requirements.
global_limits remains a compatibility alias, but logs a warning and will be
deprecated. Rename it to global_settings. Both names count toward the same
single-entry limit, even for empty entries. Serialization always uses
global_settings.
Admission caps
Section titled “Admission caps”Each cap accepts a positive integer, or omission/null for unlimited. Zero is
rejected. max_streams_per_connection additionally cannot exceed 65,535.
| Field | Applies to |
|---|---|
max_connections |
Admitted connections across the process |
max_connections_per_ip |
Admitted connections per peer IP |
max_streams |
Admitted logical streams across the process |
max_streams_per_connection |
Logical streams within one connection |
max_udp_destinations |
Admitted UDP destinations |
quic_memory_bytes |
QUIC memory admission budget, in bytes |
Admission budgets are not measurements of total process RSS. Lowering a cap does not revoke existing reservations; new work is blocked until usage permits it. See reload behavior.
Buffers and reload
Section titled “Buffers and reload”Sizes below are integer bytes, not strings such as 2MiB.
| Field | Default | Accepted range |
|---|---|---|
quic_receive_window |
2,097,152 | 65,536-67,108,864 |
quic_send_window |
2,097,152 | 65,536-67,108,864 |
quic_stream_window |
262,144 | 16,384-67,108,864 |
quic_dns_memory_bytes |
16,777,216 | 1,048,576-1,073,741,824 |
quic_socket_buffer |
8,388,608 | 65,536-16,777,216 |
reload_grace_secs |
300 seconds | 0-86,400 seconds |
quic_dns_memory_bytes is an admission estimate for the DNS library’s private
HTTP/3 transport, not a hard buffer limit. quic_socket_buffer requests OS socket
buffer sizes; the OS can grant less. See QUIC socket buffers.
Unknown fields and duplicate global-settings entries are rejected. Per-protocol limits, including XHTTP, TUN, and WireGuard, remain separate settings.