Configuration Basics
Fluxheim bruger TOML. Ukendte felter afvises, så stavefejl fejler før genstart.
Hovedform
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
Ved installationer med flere lejere skal du aktivere [server.host_routing].strict = true, så en manglende eller ugyldig værtsidentitet returnerer 400, og ukendte værter returnerer 421 i stedet for at nå standardwebstedet.
Hvordan config er organiseret
| Område | Hvad hører til der |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Global TLS-backend og compatibility-policy. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus og export listeners til driftsindsigt. |
Route-form
[[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 route har én matcher og én action. Exact paths vinder først, derefter længste prefixes, derefter regex routes når regex-support er aktiveret, og til sidst én fallback route.
HTTP-svarsikkerhed
HTTP-svarsikkerhedsprofiler er valgfrie. Start med baseline; brug kun krydsoprindelsesisolering efter test af hvert script, skrifttype, billede, login-flow og indlejret ressource.
[headers.response.hardening]
profile = "baseline"
| Profil | Hvad den gør |
|---|---|
off | Holder de tilvalgte hærdningshoveder deaktiveret. |
baseline | Tilføjer konservativ browserisolering og ressourcepolitikstandarder, der passer til de fleste websteder. |
cross-origin-isolated | Muliggør streng krydsoprindelsesisolering for applikationer, der har testet enhver ekstern afhængighed. |
Ingen af profilerne aktiverer HSTS eller CSP. Konfigurer dem separat efter at have testet dem mod det rigtige websted.
Standardbaserede svarmetadata
Svarmetadata er som standard deaktiveret. Aktiver kun de felter, du har brug for; Fluxheim udleder dem fra det faktiske cacheresultat, proxyfejl og endelige svarbytes uden at afsløre cachenøgler, backend-adresser, DNS-navne eller råfejl.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| Felt | Hvad den rapporterer |
|---|---|
Cache-Status | RFC 9211 cache-resultater såsom hit, miss, gammel videresendelse, revalidering, udløb og bypass. |
Proxy-Status | RFC 9209 detaljer med lav kardinalitet for fejl genereret af Fluxheim. |
Content-Digest | RFC 9530 SHA-256 over det endelige HTTP-meddelelsesindhold efter komprimering. |
Repr-Digest | SHA-256 kun når Fluxheim indeholder den komplette valgte repræsentation. |
Live snapshots og rollback
Autentificerede snapshots kan udgive en valideret kandidat, erstatte live-routeren og rulle tilbage uden at genstarte normale routing-only-implementeringer. Hver anmodning forbliver på én routergeneration fra start til slut.
- Opbevar snapshot-butikken i en dedikeret privat mappe; eksisterende ikke-private mapper og filsystemrødder afvises.
- Brug en procesopgradering, når baggrundsload-balancer-sundheds- eller opdagelsestjenester er aktive.
- Kør integritetstjek af øjebliksbilleder efter offentliggørelse eller tilbagerulning, og bekræft, at den valgte generation overlever genstart.
Sikre vaner
- Run
fluxheim --check-configbefore reloads. - Brug én vhost per site eller applikationsgrænse.
- Hold secrets i filer, environment eller container secrets, ikke i public docs.
- Sørg for, at konfigurationsfiler og alle eksisterende overordnede mapper har betroede ejere og ikke kan skrives til af gruppen eller andre brugere.
- Erstat processen, når indstillinger for TLS, lyttere, streams, UDP, ACME, cacherydning, sporing eller administrerede PHP-FPM-processer ændres; almindelig routing og politik ved forespørgsel kan bruge genindlæsning af et snapshot.
- Brug route-level limits til uploads og dyre applikationspaths.
- Hold admin- og metrics-listeners private.