Configuration Basics
Fluxheim koristi TOML. Nepoznata polja se odbijaju, pa tipfeleri padaju prije restarta.
Glavni oblik
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
Za višekorisnička postavljanja omogućite [server.host_routing].strict = true kako bi nedostajući ili nevaljani identitet hosta vratio 400, a nepoznati hostovi 421 umjesto zadane stranice.
Kako je config organiziran
| Područje | Što tamo pripada |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Globalna TLS backend i compatibility policy. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus i export listener za operativnu vidljivost. |
Oblik route
[[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"]
Route ima jedan matcher i jednu action. Exact path pobjeđuje prvi, zatim najduži prefix, zatim regex route kada je regex support uključen, pa fallback route.
Sigurnost HTTP odgovora
HTTP odgovor-sigurnosni profili nisu obavezni. Počnite s baseline; koristite izolaciju između izvora samo nakon testiranja svake skripte, fonta, slike, tijeka prijave i ugrađenog resursa.
[headers.response.hardening]
profile = "baseline"
| Profil | Što radi |
|---|---|
off | Onemogućuje zaglavlja za učvršćivanje odabira. |
baseline | Dodaje konzervativnu izolaciju preglednika i zadane postavke politike resursa prikladne za većinu web-mjesta. |
cross-origin-isolated | Omogućuje strogu izolaciju između izvora za aplikacije koje su testirale svaku vanjsku ovisnost. |
Nijedan profil ne omogućuje HSTS ili CSP. Konfigurirajte ih zasebno nakon testiranja na stvarnom mjestu.
Metapodaci odgovora temeljeni na standardima
Metapodaci odgovora onemogućeni su prema zadanim postavkama. Omogućite samo polja koja su vam potrebna; Fluxheim ih izvodi iz stvarnog rezultata predmemorije, kvara proxyja i konačnih bajtova odgovora bez izlaganja ključeva predmemorije, pozadinskih adresa, DNS imena ili sirovih pogrešaka.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| Polje | Što izvještava |
|---|---|
Cache-Status | Ishodi predmemorije RFC 9211 kao što su pogodak, promašaj, ustajalo prosljeđivanje, ponovna potvrda, istek i zaobilaženje. |
Proxy-Status | RFC 9209 detalji niske kardinalnosti za kvarove koje generira Fluxheim. |
Content-Digest | RFC 9530 SHA-256 preko konačnog sadržaja HTTP poruke nakon kompresije. |
Repr-Digest | SHA-256 samo kada Fluxheim sadrži kompletan odabrani prikaz. |
Snimke uživo i povratak
Autentificirane snimke mogu objaviti potvrđenog kandidata, zamijeniti aktivni usmjerivač i vratiti se bez ponovnog pokretanja normalnih implementacija samo za usmjeravanje. Svaki zahtjev ostaje na jednoj generaciji usmjerivača od početka do kraja.
- Držite pohranu snimaka u namjenskom privatnom imeniku; postojeći neprivatni direktoriji i korijeni datotečnog sustava su odbijeni.
- Upotrijebite nadogradnju procesa kada su aktivne usluge pozadinskog balansiranja opterećenja ili usluge otkrivanja.
- Pokrenite provjere integriteta snimke nakon objavljivanja ili vraćanja i provjerite je li odabrana generacija preživjela ponovno pokretanje.
Sigurne navike
- Run
fluxheim --check-configbefore reloads. - Koristi jedan vhost po site ili application boundary.
- Drži secret u file, environment ili container secrets, ne u public docs.
- Konfiguracijske datoteke i svaki postojeći nadređeni direktorij držite u pouzdanom vlasništvu, bez dopuštenja pisanja za grupu ili druge korisnike.
- Zamijenite proces kada se promijene postavke TLS-a, listenera, streamova, UDP-a, ACME-a, čišćenja cachea, tracinga ili upravljanog PHP-FPM procesa; obično usmjeravanje i pravila tijekom zahtjeva mogu upotrijebiti ponovno učitavanje snapshota.
- Koristi route-level limite za upload i skupe application path.
- Drži admin i metrics listener privatnima.