Fluxheim/Documentation/Configuration Basics

Configuration Basics

Fluxheim utilise TOML. Les champs inconnus sont rejetés, donc les fautes de frappe échouent avant le redémarrage.

Structure principale

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

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

Pour les déploiements mutualisés, activez [server.host_routing].strict = true afin qu’une identité d’hôte absente ou non valide renvoie 400 et qu’un hôte inconnu renvoie 421, au lieu d’atteindre le site par défaut.

Organisation de la configuration

ZoneCe qui y va
serverListeners, global limits, trusted proxy handling, and redirects.
tlsPolitique globale de backend TLS et de compatibilite.
cacheProcess-wide cache defaults and storage tiers.
vhostsHostnames, routes, web roots, proxy settings, PHP, TLS, and access policy.
metricsListeners Prometheus et d'export pour la visibilite operationnelle.

Forme d'une 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"]

Une route a un matcher et une action. Les chemins exacts gagnent d'abord, puis les plus longs prefixes, puis les routes regex quand regex est active, puis une route de repli.

Sécurité des réponses HTTP

Les profils de sécurité de réponse HTTP sont facultatifs. Commencez par baseline ; utilisez l’isolation multi-origine uniquement après avoir testé chaque script, police, image, flux de connexion et ressource intégrée.

[headers.response.hardening]
profile = "baseline"
ProfilCe que ça fait
offMaintient les en-têtes de renforcement opt-in désactivés.
baselineAjoute une isolation conservatrice du navigateur et des paramètres par défaut de stratégie de ressources adaptés à la plupart des sites.
cross-origin-isolatedPermet une isolation stricte entre origines pour les applications qui ont testé chaque dépendance externe.

Aucun des deux profils n’active HSTS ou CSP. Configurez-les séparément après les avoir testés sur le site réel.

Métadonnées de réponse basées sur des normes

Les métadonnées de réponse sont désactivées par défaut. Activez uniquement les champs dont vous avez besoin ; Fluxheim les dérive du résultat réel du cache, de l'échec du proxy et des octets de réponse finaux sans exposer les clés de cache, les adresses back-end, les noms DNS ou les erreurs brutes.

[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
Champ de réponseInformation signalée
Cache-StatusRésultats du cache RFC 9211 tels que les succès, les échecs, les transferts obsolètes, la revalidation, l'expiration et le contournement.
Proxy-StatusDétails de faible cardinalité RFC 9209 pour les échecs générés par Fluxheim.
Content-DigestRFC 9530 SHA-256 sur le contenu final du message HTTP après compression.
Repr-DigestSHA-256 uniquement lorsque Fluxheim contient la représentation sélectionnée complète.

Instantanés en direct et restauration

Les instantanés authentifiés permettent de publier un candidat validé, de remplacer le routeur actif et de revenir à la génération précédente sans redémarrer les déploiements limités au routage. Chaque requête utilise la même génération de routeur du début à la fin.

  • Conservez les instantanés dans un répertoire privé dédié ; les répertoires existants non privés et les racines de systèmes de fichiers sont rejetés.
  • Utilisez une mise à niveau de processus lorsque les contrôles d'état ou les services de découverte de l'équilibreur de charge fonctionnent en arrière-plan.
  • Exécutez des vérifications de l’intégrité des instantanés après la publication ou la restauration et vérifiez que la génération sélectionnée survit au redémarrage.
Lire le contrat instantané complet

Bonnes habitudes sûres

  • Run fluxheim --check-config before reloads.
  • Utilisez un vhost par site ou frontière applicative.
  • Gardez les secrets dans des fichiers, l'environnement ou des secrets conteneur, pas dans la documentation publique.
  • Conservez les fichiers de configuration et tous leurs répertoires parents existants sous une propriété de confiance, sans droit d’écriture pour le groupe ni pour les autres utilisateurs.
  • Remplacez le processus lorsque TLS, les écouteurs, les flux, UDP, ACME, la purge du cache, le traçage ou les paramètres des processus PHP-FPM gérés changent; le routage ordinaire et les politiques appliquées au moment de la requête peuvent utiliser un rechargement d’instantané.
  • Utilisez des limites par route pour les uploads et les chemins applicatifs couteux.
  • Gardez les listeners admin et metriques prives.
Français