Fluxheim/Dokumentacja/Configuration Basics

Configuration Basics

Fluxheim używa TOML. Nieznane pola są odrzucane, więc literówki zawodzą przed restartem.

Główna forma

[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"

[[vhosts]]
name = "site"
hosts = ["example.com"]

W przypadku wdrożeń wielodostępnych włącz [server.host_routing].strict = true, aby brakująca lub nieprawidłowa tożsamość hosta zwracała 400, a nieznane hosty 421 zamiast domyślnej witryny.

Jak zorganizowany jest config

ObszarCo tam należy
serverListeners, global limits, trusted proxy handling, and redirects.
tlsGlobalny backend TLS i compatibility policy.
cacheProcess-wide cache defaults and storage tiers.
vhostsHostnames, routes, web roots, proxy settings, PHP, TLS, and access policy.
metricsPrometheus i export listeners dla operational visibility.

Forma 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 ma jeden matcher i jedną action. Exact paths wygrywają pierwsze, potem najdłuższe prefixy, potem regex routes, gdy regex support jest włączony, a na końcu fallback route.

Bezpieczeństwo odpowiedzi HTTP

Profile zabezpieczeń odpowiedzi HTTP są opcjonalne. Zacznij od baseline; używaj izolacji między źródłami dopiero po przetestowaniu każdego skryptu, czcionki, obrazu, przepływu logowania i zasobu osadzonego.

[headers.response.hardening]
profile = "baseline"
ProfilCo to robi
offPowoduje, że nagłówki wzmacniające zgodę są wyłączone.
baselineDodaje konserwatywne ustawienia izolacji przeglądarki i polityki zasobów odpowiednie dla większości witryn.
cross-origin-isolatedUmożliwia ścisłą izolację między źródłami dla aplikacji, które przetestowały każdą zależność zewnętrzną.

Żaden profil nie umożliwia HSTS ani CSP. Skonfiguruj je osobno po przetestowaniu ich w rzeczywistej witrynie.

Metadane odpowiedzi oparte na standardach

Metadane odpowiedzi są domyślnie wyłączone. Włącz tylko te pola, których potrzebujesz; Fluxheim wyprowadza je z rzeczywistego wyniku pamięci podręcznej, awarii serwera proxy i końcowych bajtów odpowiedzi bez ujawniania kluczy pamięci podręcznej, adresów zaplecza, nazw DNS ani nieprzetworzonych błędów.

[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
PoleCo raportuje
Cache-StatusWyniki pamięci podręcznej RFC 9211, takie jak trafienie, chybienie, nieaktualne przekazywanie, ponowna weryfikacja, wygaśnięcie i obejście.
Proxy-StatusRFC 9209 Szczegóły niskiej kardynalności dla błędów generowanych przez Fluxheim.
Content-DigestRFC 9530 SHA-256 nad końcową treścią komunikatu HTTP po kompresji.
Repr-DigestSHA-256 tylko wtedy, gdy Fluxheim zawiera pełną wybraną reprezentację.

Migawki na żywo i przywracanie

Uwierzytelnione migawki mogą opublikować zweryfikowanego kandydata, zastąpić działający router i przywrócić działanie bez ponownego uruchamiania normalnych wdrożeń obejmujących wyłącznie routing. Każde żądanie pozostaje na jednej generacji routera od początku do końca.

  • Przechowuj magazyn migawek w dedykowanym katalogu prywatnym; istniejące nieprywatne katalogi i katalogi główne systemu plików są odrzucane.
  • Użyj uaktualnienia procesu, gdy usługi kondycji lub wykrywania modułu równoważenia obciążenia w tle są aktywne.
  • Uruchom sprawdzanie integralności migawki po publikacji lub wycofaniu i sprawdź, czy wybrana generacja przetrwała ponowne uruchomienie.
Przeczytaj całą umowę dotyczącą migawek

Bezpieczne nawyki

  • Run fluxheim --check-config before reloads.
  • Użyj jednego vhost dla strony lub application boundary.
  • Trzymaj sekrety w plikach, environment albo container secrets, nie w public docs.
  • Pliki konfiguracyjne i wszystkie istniejące katalogi nadrzędne muszą należeć do zaufanego właściciela i nie mogą być zapisywalne przez grupę ani innych użytkowników.
  • Zastąp proces po zmianie ustawień TLS, listenerów, streamów, UDP, ACME, czyszczenia cache, tracingu lub zarządzanego procesu PHP-FPM; zwykłe trasowanie i reguły stosowane podczas żądania mogą skorzystać z ponownego wczytania snapshotu.
  • Używaj limitów route-level dla uploadów i kosztownych application paths.
  • Trzymaj admin i metrics listeners private.
Polski