Configuration Basics
Fluxheim usa TOML. I campi sconosciuti vengono rifiutati, quindi gli errori di battitura falliscono prima del riavvio.
Forma principale
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
Per i deployment multi-tenant, abilita [server.host_routing].strict = true, così un'identità host mancante o non valida restituisce 400 e gli host sconosciuti restituiscono 421 anziché raggiungere il sito predefinito.
Come è organizzato il config
| Sezione | Cosa appartiene lì |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Backend TLS globale e policy compatibilità. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus e listener export per visibilità operativa. |
Forma della 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"]
Una route ha un matcher e un'azione. I path esatti vincono prima, poi i prefissi più lunghi, poi route regex quando il supporto regex è abilitato, infine una route fallback.
Sicurezza della risposta HTTP
I profili di sicurezza della risposta HTTP sono facoltativi. Inizia con baseline; utilizzare l'isolamento multiorigine solo dopo aver testato ogni script, carattere, immagine, flusso di accesso e risorsa incorporata.
[headers.response.hardening]
profile = "baseline"
| Profilo | Cosa fa |
|---|---|
off | Mantiene disabilitate le intestazioni di rafforzamento opt-in. |
baseline | Aggiunge l'isolamento conservativo del browser e le impostazioni predefinite dei criteri delle risorse adatte alla maggior parte dei siti. |
cross-origin-isolated | Abilita un rigoroso isolamento multiorigine per le applicazioni che hanno testato ogni dipendenza esterna. |
Nessuno dei due profili abilita HSTS o CSP. Configurali separatamente dopo averli testati rispetto al sito reale.
Metadati di risposta basati su standard
I metadati della risposta sono disabilitati per impostazione predefinita. Abilita solo i campi che ti servono; Fluxheim li deriva dal risultato effettivo della cache, dall'errore del proxy e dai byte di risposta finale senza esporre chiavi di cache, indirizzi di backend, nomi DNS o errori non elaborati.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| Campo | Cosa riporta |
|---|---|
Cache-Status | RFC 9211 risultati della cache come hit, miss, inoltro non aggiornato, riconvalida, scadenza e bypass. |
Proxy-Status | RFC 9209 dettagli a bassa cardinalità per gli errori generati da Fluxheim. |
Content-Digest | RFC 9530 SHA-256 sul contenuto del messaggio HTTP finale dopo la compressione. |
Repr-Digest | SHA-256 solo quando Fluxheim contiene la rappresentazione selezionata completa. |
Istantanee live e rollback
Gli snapshot autenticati possono pubblicare un candidato convalidato, sostituire il router attivo ed eseguire il rollback senza riavviare le normali distribuzioni di solo routing. Ogni richiesta rimane su una generazione di router dall'inizio alla fine.
- Conservare l'archivio snapshot in una directory privata dedicata; le directory non private esistenti e le radici del filesystem vengono rifiutate.
- Utilizzare un aggiornamento del processo quando l'integrità del sistema di bilanciamento del carico in background o i servizi di individuazione sono attivi.
- Esegui controlli di integrità dello snapshot dopo la pubblicazione o il rollback e verifica che la generazione selezionata sopravviva al riavvio.
Abitudini sicure
- Run
fluxheim --check-configbefore reloads. - Usa un vhost per sito o per boundary applicativo.
- Tieni i segreti in file, environment o secret container, non nella documentazione pubblica.
- Mantieni i file di configurazione e ogni directory padre esistente sotto una proprietà attendibile e non scrivibili dal gruppo o da altri utenti.
- Sostituisci il processo quando cambiano TLS, listener, stream, UDP, ACME, eliminazione della cache, tracing o impostazioni del processo PHP-FPM gestito; il normale routing e le policy applicate durante la richiesta possono usare il ricaricamento di uno snapshot.
- Usa limiti a livello route per upload e path applicativi costosi.
- Mantieni privati i listener admin e metrics.