Configuration Basics
Fluxheim juża TOML. Fields mhux magħrufa jiġu miċħuda, għalhekk żbalji fl-ismijiet ifallu qabel restart.
Forma ewlenija
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
Għal deployments multi-tenant, attiva [server.host_routing].strict = true sabiex identità tal-host nieqsa jew invalida tirritorna 400 u hosts mhux magħrufa jirritornaw 421 minflok jaslu fis-sit awtomatiku.
Kif huwa organizzat il-config
| Qasam | X’jappartjeni hemm |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Globali TLS backend u compatibility politika. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus u export listeners għal operational visibility. |
Forma tar-rotta
[[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"]
A rotta has one matcher u one action. Exact paths win first, then longest prefixes, then regex rotot when regex support is enabled, then one fallback rotta.
Sigurtà ta' rispons HTTP
Il-profili tas-sigurtà tar-rispons HTTP huma fakultattivi. Ibda b'baseline; uża iżolament ta' oriġini inkroċjata biss wara li tittestja kull skript, font, immaġni, fluss ta' dħul, u riżorsa inkorporata.
[headers.response.hardening]
profile = "baseline"
| Profil | X'tagħmel |
|---|---|
off | Iżomm l-headers tat-twebbis opt-in diżattivati. |
baseline | Iżżid iżolament konservattiv tal-browser u defaults tal-politika tar-riżorsi adattati għall-biċċa l-kbira tas-siti. |
cross-origin-isolated | Jippermetti iżolament strett bejn l-oriġini għal applikazzjonijiet li ttestjaw kull dipendenza esterna. |
L-ebda profil ma jippermetti HSTS jew CSP. Ikkonfigura dawk separatament wara li tittestjahom kontra s-sit reali.
Metadata tar-rispons ibbażata fuq standards
Il-metadejta tar-rispons hija diżattivata b'mod awtomatiku. Ippermetti biss l-oqsma li għandek bżonn; Fluxheim joħroġhom mir-riżultat attwali tal-cache, falliment tal-prokura, u bytes tar-rispons finali mingħajr ma jesponi ċwievet tal-cache, indirizzi backend, ismijiet DNS, jew żbalji mhux ipproċessati.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| Qasam | Dak li tirrapporta |
|---|---|
Cache-Status | RFC 9211 eżiti tal-cache bħal hit, miss, twassil obsolet, validazzjoni mill-ġdid, skadenza, u bypass. |
Proxy-Status | RFC 9209 dettalji ta 'kardinalità baxxa għal fallimenti ġġenerati minn Fluxheim. |
Content-Digest | RFC 9530 SHA-256 fuq il-kontenut finali tal-messaġġ HTTP wara kompressjoni. |
Repr-Digest | SHA-256 biss meta Fluxheim iżomm ir-rappreżentazzjoni magħżula sħiħa. |
Snapshots ħajjin u rollback
Snapshots awtentikati jistgħu jippubblikaw kandidat validat, jissostitwixxu r-router live, u jreġġgħu lura mingħajr ma jerġgħu jibdew skjeramenti normali ta' routing biss. Kull talba tibqa' fuq ġenerazzjoni waħda ta' router mill-bidu sat-tmiem.
- Żomm il-maħżen tal-istampa f'direttorju privat iddedikat; direttorji eżistenti mhux privati u għeruq tas-sistema tal-fajls huma miċħuda.
- Uża aġġornament tal-proċess meta s-servizzi tas-saħħa jew ta' l-iskoperta ta' load-balancer fl-isfond ikunu attivi.
- Mexxi kontrolli ta 'integrità ta' snapshot wara l-pubblikazzjoni jew it-tkeċċija u vverifika li l-ġenerazzjoni magħżula tibqa 'ħajja mill-ġdid.
Drawwiet sikuri
- Run
fluxheim --check-configbefore reloads. - Use one vhost per sit jew application boundary.
- Keep sigrieti in fajls, environment, jew kontenitur sigrieti, not in pubbliku docs.
- Żomm il-fajls tal-konfigurazzjoni u kull direttorju ġenitur eżistenti taħt sjieda fdata u mhux miktuba minn grupp jew utenti oħra.
- Ibdel il-proċess meta jinbidlu TLS, listeners, streams, UDP, ACME, cache purging, tracing jew settings tal-proċess PHP-FPM immaniġġjat; routing ordinarju u policy waqt it-talba jistgħu jużaw snapshot reload.
- Use rotta-level limiti għal uploads u expensive application paths.
- Keep admin u metriki listeners privat.