Configuration Basics
Fluxheim bruker TOML. Ukjente felt avvises, så skrivefeil feiler før restart.
Hovedform
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
For flerleietakerinstallasjoner aktiverer du [server.host_routing].strict = true, slik at manglende eller ugyldig vertsidentitet gir 400 og ukjente verter gir 421 i stedet for å nå standardnettstedet.
Hvordan config er organisert
| Område | Hva som hører hjemme der |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Global TLS-backend og kompatibilitetspolicy. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus- og eksportlyttere for driftsinnsyn. |
Ruteform
[[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 rute har én matcher og én handling. Eksakte stier vinner først, deretter lengste prefikser, deretter regex-ruter når regex-støtte er aktivert, og til slutt én fallback-rute.
HTTP-responssikkerhet
HTTP-responssikkerhetsprofiler er valgfrie. Start med baseline; bruk kryssopprinnelsesisolasjon bare etter å ha testet hvert skript, skrifttype, bilde, påloggingsflyt og innebygd ressurs.
[headers.response.hardening]
profile = "baseline"
| Profil | Hva den gjør |
|---|---|
off | Holder de opt-in herdehodene deaktivert. |
baseline | Legger til konservativ nettleserisolasjon og ressurspolicystandarder som passer for de fleste nettsteder. |
cross-origin-isolated | Muliggjør streng kryssopprinnelsesisolasjon for applikasjoner som har testet hver ekstern avhengighet. |
Ingen av profilene aktiverer HSTS eller CSP. Konfigurer disse separat etter å ha testet dem mot det virkelige nettstedet.
Standardbasert responsmetadata
Responsmetadata er deaktivert som standard. Aktiver bare feltene du trenger; Fluxheim henter dem fra det faktiske hurtigbufferresultatet, proxy-feil og endelige svarbytes uten å avsløre cache-nøkler, backend-adresser, DNS-navn eller råfeil.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| Felt | Hva den rapporterer |
|---|---|
Cache-Status | RFC 9211 cache-utfall som treff, miss, foreldet videresending, revalidering, utløp og bypass. |
Proxy-Status | RFC 9209 detaljer med lav kardinalitet for feil generert av Fluxheim. |
Content-Digest | RFC 9530 SHA-256 over det endelige innholdet i HTTP etter komprimering. |
Repr-Digest | SHA-256 bare når Fluxheim har den fullstendige valgte representasjonen. |
Live øyeblikksbilder og tilbakerulling
Autentiserte øyeblikksbilder kan publisere en validert kandidat, erstatte live-ruteren og rulle tilbake uten å starte normale distribusjoner som kun er for ruting. Hver forespørsel forblir på én rutergenerasjon fra start til slutt.
- Hold øyeblikksbildebutikken i en dedikert privat katalog; eksisterende ikke-private kataloger og filsystemrøtter avvises.
- Bruk en prosessoppgradering når bakgrunnsbelastningsbalanserhelse eller oppdagelsestjenester er aktive.
- Kjør integritetskontroller for øyeblikksbilder etter publisering eller tilbakeføring og bekreft at den valgte generasjonen overlever omstart.
Trygge vaner
- Run
fluxheim --check-configbefore reloads. - Bruk én vhost per nettsted eller applikasjonsgrense.
- Hold hemmeligheter i filer, miljø eller container secrets, ikke i offentlig dokumentasjon.
- Sørg for at konfigurasjonsfiler og alle eksisterende overordnede kataloger har betrodde eiere og ikke kan skrives til av gruppen eller andre brukere.
- Erstatt prosessen når innstillinger for TLS, lyttere, strømmer, UDP, ACME, tømming av hurtigbuffer, sporing eller administrerte PHP-FPM-prosesser endres; vanlig ruting og policy ved forespørsel kan bruke en ny innlasting av øyeblikksbildet.
- Bruk rutenivågrenser for opplastinger og kostbare applikasjonsstier.
- Hold admin- og metrics-lyttere private.