Configuration Basics
Fluxheim користи TOML. Непозната поља се одбијају, па типфелери падају прије restarta.
Главни облик
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
За multi-tenant deployments укључите [server.host_routing].strict = true: недостајући или неважећи host identity враћа 400, а непознати hosts враћају 421 уместо да стигну до default site-а.
Како је цонфиг организиран
| Подручје | Што тамо припада |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Глобална TLS backend и compatibility policy. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus и експорт листенер за оперативну vidljivost. |
Облик роуте
[[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 има један matcher и једну action вредност. Exact path побеђује први, затим најдужи prefix, затим regex route када је regex support укључен, па fallback route.
Безбедност HTTP одговора
Профили безбедности HTTP одговора су опциони. Почните са baseline; изолацију различитих извора користите тек након тестирања сваке скрипте, фонта, слике, тока пријаве и уграђеног ресурса.
[headers.response.hardening]
profile = "baseline"
| Профиле | Шта ради |
|---|---|
off | Оставља искључена заглавља за учвршћивање. |
baseline | Додаје конзервативну изолацију прегледача и подразумеване поставке политике ресурса погодне за већину сајтова. |
cross-origin-isolated | Омогућава строгу изолацију између извора за апликације које су тестирале сваку спољну зависност. |
Ниједан профил не омогућава HSTS или CSP. Подесите их засебно након тестирања на стварном сајту.
Метаподаци одговора засновани на стандардима
Метаподаци одговора су подразумевано онемогућени. Омогућите само поља која су вам потребна; Fluxheim их изводи из стварног резултата кеша, грешке проксија и коначних бајтова одговора без откривања кључева кеша, адреса позадинских сервера, DNS имена или необрађених грешака.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| Поље | Шта извештава |
|---|---|
Cache-Status | Исходи кеша према RFC 9211, као што су погодак, промашај, прослеђивање застарелог садржаја, поновна валидација, истек и заобилажење. |
Proxy-Status | Детаљи ниске кардиналности према RFC 9209 за грешке које генерише Fluxheim. |
Content-Digest | RFC 9530 SHA-256 над коначним садржајем HTTP поруке након компресије. |
Repr-Digest | SHA-256 само када Fluxheim држи потпуну изабрану репрезентацију. |
Снимци уживо и враћање
Овјерени снимци могу објавити валидираног кандидата, замијенити активни рутер и вратити се без поновног покретања уобичајених имплементација само за рутирање. Сваки захтев остаје на једној генерацији рутера од почетка до краја.
- Чувајте складиште снимака у наменском приватном директоријуму; постојећи не-приватни директоријуми и корени система датотека су одбијени.
- Користите надоградњу процеса када су активни сервиси здравља или откривања балансера оптерећења у позадини.
- Покрените проверу интегритета снимака након објављивања или враћања и проверите да ли је изабрана генерација преживела поновно покретање.
Сигурне навике
- Run
fluxheim --check-configbefore reloads. - Користи један вхост по сите или апплицатион boundary.
- Држи сецрет у file, енвиронмент или цонтаинер сецретс, не у публиц docs.
- Држите config files и све постојеће parent directories под поузданом ownership и без права уписа за group или друге users.
- Замените process када се промене TLS, listeners, streams, UDP, ACME, cache purging, tracing или managed PHP-FPM process settings; обичан routing и request-time policy могу да користе snapshot reload.
- Користи роуте-левел лимите за уплоад и скупе апплицатион path.
- Држи admin и metrics listener приватнима.