Reference
Reference: server
server.accept_policy
| Syntax | accept_policy: shared | fountain |
| Default | shared |
| Context | server |
| Reload | read when the process starts |
Which event loop takes a new connection from the shared accept queue (ADR-0044): shared (default), whichever loop wakes first; fountain, loops fill in order and a loop takes connections only while the loops before it are busy or hold twice their fair share of the open connections.
server.acme
| Syntax | acme: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Automatic certificates from an ACME CA such as Let’s Encrypt (ADR-0018).
server.admin
| Syntax | admin: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Admin API used by scalwsctl and the console (ADR-0017).
server.ai
| Syntax | ai: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Optional local AI advisor (ADR-0016); advisory only.
server.cache
| Syntax | cache: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Memory (and optional disk) shared by applications that enable the response cache.
server.cgroups
| Syntax | cgroups: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
cgroup v2 limits for managed applications (ADR-0010).
server.diagnostics
| Syntax | diagnostics: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Slow-request threshold and the number of recent requests kept for diagnosis.
server.ebpf
| Syntax | ebpf: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Optional eBPF network accounting (ADR-0025, builds with the ebpf feature).
server.event_loops
| Syntax | event_loops: <integer> |
| Default | one per CPU |
| Context | server |
| Reload | needs a restart |
Per-core event loops (ADR-0029): unset = one per CPU, 0 = one shared work-stealing runtime. Linux only (elsewhere always shared).
server.health
| Syntax | health: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Plain HTTP listener for orchestrator probes: /healthz, /readyz and optionally /metrics; nothing else.
server.http1_server
| Syntax | http1_server: hyper | experimental |
| Default | hyper |
| Context | server |
| Reload | applies on reload |
HTTP/1 server implementation (ADR-0046): hyper (default) or experimental: scalws’s own. Applies to connections accepted after a reload.
server.ktls
| Syntax | ktls: true | false |
| Default | false |
| Context | server |
| Reload | read when the process starts |
Kernel TLS for HTTPS/1.1 file bodies (Linux, modprobe tls; ADR-0030).
server.limits
| Syntax | limits: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Connection, header, body and timeout limits for every client connection.
server.listen_socket
| Syntax | listen_socket: <string> |
| Default | none |
| Context | server |
| Reload | read when the process starts |
Unix socket that hands out the listening sockets for listener_mode: inherited (set by scalws-controller through --listen-socket).
server.listener_mode
| Syntax | listener_mode: shared | reuseport | inherited |
| Default | shared |
| Context | server |
| Reload | read when the process starts |
How listening sockets are opened (ADR-0033): shared (default), one socket per address shared by this process’s event loops; reuseport: one SO_REUSEPORT socket per event loop, so several scalwsd instances can serve the same address; inherited: the sockets are received from listen_socket (opened by scalws-controller; every instance accepts from the same queue). Linux only.
server.listeners
| Syntax | listeners: [{...}, ...] |
| Default | required |
| Context | server |
| Reload | adding or removing it needs a restart; its values apply on reload |
Addresses the server accepts connections on, plain or TLS.
server.logging
| Syntax | logging: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Log format, level and access logging.
server.loop_lag_probe
| Syntax | loop_lag_probe: true | false |
| Default | false |
| Context | server |
| Reload | applies on reload |
Measure event-loop lag (a 100 ms timer per loop) and export scalws_event_loop_lag_seconds (Adaptive Runtime pressure signal, ADR-0034). Off by default; on for instances started by the controller.
server.metrics
| Syntax | metrics: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Loopback listener for /metrics, /healthz, /readyz and the dashboard.
server.open_file_cache
| Syntax | open_file_cache: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Open file cache for static files (ADR-0028).
server.optimizer
| Syntax | optimizer: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Deterministic optimizer that evaluates every application periodically (ADR-0014).
server.reload
| Syntax | reload: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Watch the configuration, its site files and listener certificates, and reload when one of them changes (for Kubernetes ConfigMap and Secret volumes).
server.runtime_dir
| Syntax | runtime_dir: <string> |
| Default | /run/scalws |
| Context | server |
| Reload | needs a restart |
Directory for managed runtimes’ sockets and generated configuration (ADR-0008).
server.sandbox
| Syntax | sandbox: {...} |
| Default | none |
| Context | server |
| Reload | read when the process starts |
In-process sandbox of scalwsd (Landlock and seccomp, Linux): off (default), audit or on, or a map with mode, read_paths and write_paths (docs/guide/sandbox.md).
server.security
| Syntax | security: {...} |
| Default | see the fields below |
| Context | server |
| Reload | applies on reload |
Per-client connection and request limits.
server.sendfile
| Syntax | sendfile: true | false |
| Default | true |
| Context | server |
| Reload | applies on reload |
Large static files on plain-TCP HTTP/1 connections are sent with sendfile(2) (Linux, ADR-0027).
server.trusted_proxies
| Syntax | trusted_proxies: [<string>, ...] |
| Default | [] |
| Context | server |
| Reload | applies on reload |
Peers (CIDRs) allowed to report the client address via X-Forwarded-For or the PROXY protocol (ADR-0022), e.g. your load balancers.
server.upstream_client
| Syntax | upstream_client: hyper | experimental |
| Default | hyper |
| Context | server |
| Reload | read when the process starts |
HTTP/1 client of every proxy and managed application (ADR-0045): hyper (default) or experimental. A proxy route’s client overrides it. Read at start-up (a reload keeps the running value; route-level client changes apply on reload).