Configuration Basics
Fluxheim používá TOML. Neznámá pole se odmítají, takže překlepy selžou před restartem.
Hlavní tvar
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
U vícenájemních nasazení povolte [server.host_routing].strict = true, aby chybějící nebo neplatná identita hostitele vracela 400 a neznámí hostitelé 421 namísto výchozího webu.
Jak je config organizovaný
| Oblast | Co sem patří |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Globální TLS backend a compatibility policy. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus a export listener pro provozní viditelnost. |
Tvar 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 má jeden matcher a jednu action. Exact path vyhrává první, potom nejdelší prefix, potom regex route při zapnuté regex support a nakonec fallback route.
Zabezpečení odezvy HTTP
Profily zabezpečení odezvy HTTP jsou volitelné. Začněte s baseline; použijte izolaci mezi původy pouze po otestování každého skriptu, písma, obrázku, toku přihlášení a vloženého prostředku.
[headers.response.hardening]
profile = "baseline"
| Profil | Co to dělá |
|---|---|
off | Ponechá deaktivovaná volitelná zpevňovací záhlaví. |
baseline | Přidává konzervativní izolaci prohlížeče a výchozí hodnoty zásad zdrojů vhodné pro většinu webů. |
cross-origin-isolated | Umožňuje přísnou izolaci mezi zdroji pro aplikace, které testovaly všechny externí závislosti. |
Žádný profil neumožňuje HSTS ani CSP. Po otestování na skutečném webu je nakonfigurujte samostatně.
Metadata odpovědí založená na standardech
Metadata odpovědi jsou ve výchozím nastavení zakázána. Povolte pouze pole, která potřebujete; Fluxheim je odvozuje ze skutečného výsledku mezipaměti, selhání proxy a konečných bajtů odpovědi, aniž by odhalil klíče mezipaměti, adresy back-endu, názvy DNS nebo nezpracované chyby.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| pole | Co hlásí |
|---|---|
Cache-Status | Výsledky mezipaměti RFC 9211, jako je hit, miss, zastaralé předávání, revalidace, expirace a bypass. |
Proxy-Status | Podrobnosti o nízké kardinalitě RFC 9209 pro selhání generované Fluxheim. |
Content-Digest | RFC 9530 SHA-256 přes konečný obsah zprávy HTTP po kompresi. |
Repr-Digest | SHA-256 pouze tehdy, když Fluxheim obsahuje kompletní vybranou reprezentaci. |
Živé snímky a rollback
Ověřené snímky mohou publikovat ověřeného kandidáta, nahradit aktivní směrovač a vrátit se zpět bez restartování normálních nasazení pouze pro směrování. Každý požadavek zůstává na jedné generaci routeru od začátku do konce.
- Udržujte úložiště snímků ve vyhrazeném soukromém adresáři; existující nesoukromé adresáře a kořeny souborového systému jsou odmítnuty.
- Upgrade procesu použijte, když jsou aktivní služby pro vyrovnávání zatížení na pozadí nebo služby zjišťování.
- Spusťte kontroly integrity snímku po publikování nebo vrácení zpět a ověřte, že vybraná generace přežije restart.
Bezpečné návyky
- Run
fluxheim --check-configbefore reloads. - Použij jeden vhost na site nebo application boundary.
- Drž secret ve file, environment nebo container secrets, ne ve veřejné dokumentaci.
- Konfigurační soubory a všechny existující nadřazené adresáře ponechte v důvěryhodném vlastnictví a bez práva zápisu pro skupinu či ostatní uživatele.
- Při změně nastavení TLS, listenerů, streamů, UDP, ACME, čištění cache, tracingu nebo spravovaného procesu PHP-FPM proces nahraďte; běžné směrování a pravidla při zpracování požadavku mohou použít opětovné načtení snapshotu.
- Použij route-level limity pro upload a drahé application path.
- Drž admin a metrics listener privátní.