Configuration Basics
Fluxheim använder TOML. Okända fält avvisas, så stavfel stoppas före omstart.
Grundstruktur
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
Aktivera [server.host_routing].strict = true för installationer med flera kunder, så att en saknad eller ogiltig värdidentitet ger 400 och okända värdar ger 421 i stället för att nå standardwebbplatsen.
Hur konfigurationen är organiserad
| Område | Vad som hör hemma där |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Global TLS-backend och kompatibilitetspolicy. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus- och exportlisteners för operativ synlighet. |
Ruttform
[[vhosts.routes]]
name = "app"
path_prefix = "/app/"
methods = ["GET", "HEAD", "POST"]
max_request_body_bytes = "16MiB"
[vhosts.routes.proxy]
upstreams = ["127.0.0.1:3000"]
En rutt har en matchare och en åtgärd. Exakta sökvägar vinner först, sedan längsta prefix, sedan regex-rutter när regex är aktiverat, och sedan en fallback-rutt.
HTTP-svarssäkerhet
HTTP-svarssäkerhetsprofiler är valfria. Börja med baseline; använd korsoriginisolering endast efter att ha testat varje skript, teckensnitt, bild, inloggningsflöde och inbäddad resurs.
[headers.response.hardening]
profile = "baseline"
| Profil | Vad den gör |
|---|---|
off | Håller de opt-in-härdningshuvuden inaktiverade. |
baseline | Lägger till konservativ webbläsarisolering och resurspolicystandarder som är lämpliga för de flesta webbplatser. |
cross-origin-isolated | Möjliggör strikt kors-ursprungsisolering för applikationer som har testat alla externa beroenden. |
Ingen av profilerna aktiverar HSTS eller CSP. Konfigurera dem separat efter att ha testat dem mot den verkliga webbplatsen.
Standardbaserad responsmetadata
Svarsmetadata är inaktiverat som standard. Aktivera endast de fält du behöver; Fluxheim härleder dem från det faktiska cacheresultatet, proxyfel och slutliga svarsbytes utan att exponera cache-nycklar, backend-adresser, DNS-namn eller råfel.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| Fält | Vad den rapporterar |
|---|---|
Cache-Status | RFC 9211 cacheresultat som träff, miss, inaktuell vidarebefordran, förlängning, utgång och bypass. |
Proxy-Status | RFC 9209 detaljer med låg kardinalitet för fel som genereras av Fluxheim. |
Content-Digest | RFC 9530 SHA-256 över det slutliga innehållet i HTTP efter komprimering. |
Repr-Digest | SHA-256 endast när Fluxheim innehåller den fullständiga valda representationen. |
Live ögonblicksbilder och rollback
Autentiserade ögonblicksbilder kan publicera en validerad kandidat, ersätta liveroutern och rulla tillbaka utan att starta om normala distributioner av enbart routing. Varje begäran stannar på en routergeneration från början till slut.
- Håll ögonblicksbildsbutiken i en dedikerad privat katalog; befintliga icke-privata kataloger och filsystemrötter avvisas.
- Använd en processuppgradering när belastningsbalanserarens hälsa eller upptäcktstjänster är aktiva.
- Kör integritetskontroller för ögonblicksbilder efter publicering eller återställning och verifiera att den valda generationen överlever omstart.
Säkra vanor
- Run
fluxheim --check-configbefore reloads. - Använd en vhost per webbplats eller applikationsgräns.
- Förvara secrets i filer, miljön eller container-secrets, inte i publik dokumentation.
- Se till att konfigurationsfiler och alla befintliga överordnade kataloger har betrodda ägare och inte är skrivbara för gruppen eller andra användare.
- Ersätt processen när inställningar för TLS, lyssnare, strömmar, UDP, ACME, cacherensning, spårning eller hanterade PHP-FPM-processer ändras; vanlig routning och policy vid begäran kan använda en omladdning av ögonblicksbilden.
- Använd ruttgränser för uppladdningar och dyra applikationssökvägar.
- Håll admin- och metrics-listeners privata.