Skip to content

Latest commit

 

History

History
48 lines (37 loc) · 3.25 KB

File metadata and controls

48 lines (37 loc) · 3.25 KB

Configuration examples

Each profile ships as INI, YAML, and JSON. The daemon loads all three; --config selects the parser from the path (.yml / .yaml, .json, otherwise INI).

./build/simple-httpd --config config/examples/simple.conf.example --dump-config
./build/simple-httpd --config config/examples/simple.yml.example --dump-config
./build/simple-httpd --config config/examples/simple.json.example --dump-config

The complete key reference is docs/configuration.md. Hardening notes: docs/security.md.

Profiles

Profile INI YAML JSON Use when
Simple simple.conf.example simple.yml.example simple.json.example Local tryout: HTTP on 127.0.0.1:8080, ./www, terminal logs
Advanced advanced.conf.example advanced.yml.example advanced.json.example Multiple sites, gzip, cache headers, rewrite example
Production production.conf.example production.yml.example production.json.example HTTPS on 443, file logs, rate limits, virtual hosts
Security security.conf.example security.yml.example security.json.example TLS + HSTS + CSP, tight timeouts, method filter
Users htpasswd.example Plaintext user:password for auth_basic_file

simple-httpd.conf.example in this directory matches the simple INI profile.

Unknown keys are ignored. INI section headers other than [vhost:hostname] are documentation; keys remain global. YAML/JSON use a virtual_hosts list instead of [vhost:] sections. TLS starts only when both ssl_cert and ssl_key are set.

JSON has no comments. YAML comments start with #. Quote YAML values that contain : (rewrites, CSP).

Keys operators actually set

Key Meaning
listen_address / listen_port Bind
document_root Default site
[vhost:name] (INI) or virtual_hosts (YAML/JSON) Extra Host names
ssl_cert / ssl_key / hsts HTTPS
compression / cache_max_age gzip and Cache-Control
csp / security_headers Browser headers
allow_methods Method filter (default GET, HEAD, OPTIONS)
auth_basic_file / auth_basic_realm HTTP Basic
rate_limit_enabled / rate_limit_requests / rate_limit_window_seconds Per-IP window
rewrite Prefix rules from:to (comma-separated string or a list)
health_path / metrics_path /healthz and Prometheus /metrics
http2 / worker_threads / max_connections HTTP/2 and connection capacity
file_cache / ssi / cgi_prefix / proxy / fastcgi / mime_type Optional extras (see configuration.md)
access_log / error_log / log_level Logging (- = stdio)

Health and metrics skip auth and rate limits so probes still work.