Configuration Basics
Fluxheim използва TOML. Непознати полета се отхвърлят, така че правописни грешки падат преди restart.
Основна форма
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
При multi-tenant внедрявания активирайте [server.host_routing].strict = true, така че липсваща или невалидна host идентичност да връща 400, а неизвестните hosts да връщат 421 вместо сайта по подразбиране.
Как е организиран config
| Област | Какво принадлежи там |
|---|---|
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 и export listener-и за operational visibility. |
Форма на 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 има един 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. - Използвай един vhost за site или application boundary.
- Дръж secret-и във file, environment или container secrets, не в public docs.
- Съхранявайте конфигурационните файлове и всяка съществуваща родителска директория под доверена собственост и без права за запис от групата или други потребители.
- Заменете процеса при промяна на настройки за TLS, listeners, streams, UDP, ACME, изчистване на cache, tracing или управлявания PHP-FPM процес; обикновеното маршрутизиране и правилата по време на заявка могат да използват презареждане на snapshot.
- Използвай route-level лимити за upload и скъпи application path-ове.
- Дръж admin и metrics listener-и private.