Configuration Basics
Fluxheim izmanto TOML. Nezināmi lauki tiek noraidīti, tāpēc pārrakstīšanās kļūdas izgāžas pirms restartēšanas.
Pamata forma
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
Vairāku nomnieku izvietojumos iespējojiet [server.host_routing].strict = true, lai trūkstoša vai nederīga resursdatora identitāte atgrieztu 400 un nezināms resursdators atgrieztu 421, nevis sasniegtu noklusējuma vietni.
Kā config ir organizēts
| Joma | Kas tur pieder |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Globāls TLS backend un compatibility policy. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus un export listeneri operational visibility vajadzībām. |
Route forma
[[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 ir viens matcher un viena action. Exact path uzvar pirmais, tad garākie prefix, tad regex route, ja regex atbalsts ir ieslēgts, un tad viens fallback route.
HTTP atbildes drošība
HTTP atbildes drošības profili nav obligāti. Sāciet ar baseline; izmantojiet vairāku avotu izolāciju tikai pēc katra skripta, fonta, attēla, pierakstīšanās plūsmas un iegultā resursa pārbaudes.
[headers.response.hardening]
profile = "baseline"
| Profils | Ko tas dara |
|---|---|
off | Atspējo izvēles nostiprināšanas galvenes. |
baseline | Pievieno konservatīvu pārlūkprogrammas izolāciju un resursu politikas noklusējuma iestatījumus, kas piemēroti lielākajai daļai vietņu. |
cross-origin-isolated | Iespējo stingru starpizcelsmes izolāciju lietojumprogrammām, kuras ir pārbaudījušas visas ārējās atkarības. |
Neviens profils neiespējo HSTS vai CSP. Konfigurējiet tos atsevišķi pēc to testēšanas, salīdzinot ar reālo vietni.
Uz standartiem balstīti atbilžu metadati
Atbilžu metadati pēc noklusējuma ir atspējoti. Iespējojiet tikai nepieciešamos laukus; Fluxheim tos iegūst no faktiskā kešatmiņas rezultāta, starpniekservera kļūmes un galīgās atbildes baitiem, neatklājot kešatmiņas atslēgas, aizmugursistēmas adreses, DNS nosaukumus vai neapstrādātas kļūdas.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| Lauks | Par ko tā ziņo |
|---|---|
Cache-Status | RFC 9211 kešatmiņas rezultāti, piemēram, trāpījums, garām, novecojis pārsūtīšana, atkārtota apstiprināšana, derīguma termiņš un apiešana. |
Proxy-Status | RFC 9209 zemas kardinalitātes informācija par kļūmēm, ko rada Fluxheim. |
Content-Digest | RFC 9530 SHA-256 pār pēdējā HTTP ziņojuma saturu pēc saspiešanas. |
Repr-Digest | SHA-256 tikai tad, ja Fluxheim satur visu atlasīto attēlojumu. |
Tiešraides momentuzņēmumi un atcelšana
Autentificēti momentuzņēmumi var publicēt apstiprinātu kandidātu, nomainīt reāllaika maršrutētāju un atsākt, nerestartējot parastās tikai maršrutēšanas izvietošanas. Katrs pieprasījums paliek vienā maršrutētāja paaudzē no sākuma līdz beigām.
- Saglabājiet momentuzņēmumu veikalu īpašā privātajā direktorijā; esošie neprivātie direktoriji un failu sistēmu saknes tiek noraidīti.
- Izmantojiet procesa jaunināšanu, kad ir aktīvi fona slodzes līdzsvarotāja veselības vai atklāšanas pakalpojumi.
- Palaidiet momentuzņēmuma integritātes pārbaudes pēc publicēšanas vai atcelšanas un pārbaudiet, vai atlasītā paaudze izdzīvo restartēšanu.
Droši ieradumi
- Run
fluxheim --check-configbefore reloads. - Izmanto vienu vhost katrai vietnei vai lietotnes robežai.
- Turi secrets failos, environment vai container secrets, nevis publiskā dokumentācijā.
- Glabājiet konfigurācijas failus un visus esošos augstāka līmeņa direktorijus uzticama īpašnieka pārvaldībā un neļaujiet grupai vai citiem lietotājiem tajos rakstīt.
- Aizstājiet procesu, ja mainās TLS, klausītāju, straumju, UDP, ACME, kešatmiņas tīrīšanas, izsekošanas vai pārvaldīto PHP-FPM procesu iestatījumi; parastai maršrutēšanai un pieprasījuma laika politikai var izmantot momentuzņēmuma pārlādi.
- Izmanto route-level limitus uploadiem un dārgiem application pathiem.
- Turi admin un metrics listenerus privātus.