Fluxheim/Документація/Configuration Basics

Configuration Basics

Fluxheim використовує TOML. Unknown fields відхиляються, тому помилки spelling fail перед restart.

Основна форма

[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.

Як організовано config

ОбластьЩо належить сюди
serverListeners, global limits, trusted proxy handling, and redirects.
tlsGlobal TLS backend і compatibility політика.
cacheProcess-wide cache defaults and storage tiers.
vhostsHostnames, routes, web roots, proxy settings, PHP, TLS, and access policy.
metricsPrometheus і export listeners для operational visibility.

Форма маршруту

[[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"]

Маршрут має одну умову зіставлення та одну дію. Спочатку перемагають точні шляхи, потім найдовші префікси, далі regex-маршрути, якщо їх підтримку ввімкнено, і нарешті один резервний маршрут.

Безпека відповіді 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-StatusRFC 9209 деталі низької потужності для збоїв, створених Fluxheim.
Content-DigestRFC 9530 SHA-256 над остаточним вмістом повідомлення HTTP після стиснення.
Repr-DigestSHA-256 лише тоді, коли Fluxheim містить повне вибране представлення.

Живі знімки та відкат

Автентифіковані знімки можуть опублікувати підтвердженого кандидата, замінити поточний маршрутизатор і виконати відкат без перезапуску звичайних розгортань лише з маршрутизацією. Кожен запит залишається на одній генерації маршрутизатора від початку до кінця.

  • Зберігайте сховище знімків у спеціальному приватному каталозі; існуючі неприватні каталоги та корені файлової системи відхиляються.
  • Використовуйте оновлення процесу, коли фонові служби балансування навантаження справності або виявлення активні.
  • Запустіть перевірку цілісності знімка після публікації або відкоту та переконайтеся, що вибране покоління переживе перезапуск.
Прочитайте повний знімок контракту

Безпечні звички

  • Run fluxheim --check-config before reloads.
  • Use one vhost per сайт або application boundary.
  • Keep секрети in файли, environment, або контейнер секрети, not in публічний 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.
  • Використовуйте обмеження на рівні маршруту для завантажень і ресурсомістких шляхів застосунку.
  • Keep admin і метрики listeners приватний.
Українська