Fluxheim/Documentos/Configuration Basics

Configuration Basics

O Fluxheim usa TOML. Campos desconhecidos são rejeitados, por isso erros de escrita falham antes do restart.

Forma principal

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

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

Em implementações multi-inquilino, ative [server.host_routing].strict = true para que uma identidade de anfitrião ausente ou inválida devolva 400 e anfitriões desconhecidos devolvam 421, em vez de chegarem ao site predefinido.

Como a config é organizada

ÁreaO que pertence aí
serverListeners, global limits, trusted proxy handling, and redirects.
tlsBackend TLS global e política de compatibilidade.
cacheProcess-wide cache defaults and storage tiers.
vhostsHostnames, routes, web roots, proxy settings, PHP, TLS, and access policy.
metricsPrometheus e export listeners para visibilidade operacional.

Forma da 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"]

Uma route tem um matcher e uma action. Exact paths ganham primeiro, depois prefixes mais longos, depois regex routes quando regex support está ativo, e por fim uma fallback route.

Segurança de resposta HTTP

Perfis de segurança de resposta HTTP são opcionais. Comece com baseline; use o isolamento de origem cruzada somente depois de testar cada script, fonte, imagem, fluxo de login e recurso incorporado.

[headers.response.hardening]
profile = "baseline"
PerfilO que isso faz
offMantém os cabeçalhos de proteção opt-in desativados.
baselineAdiciona isolamento conservador do navegador e padrões de política de recursos adequados para a maioria dos sites.
cross-origin-isolatedPermite isolamento estrito entre origens para aplicativos que testaram todas as dependências externas.

Nenhum dos perfis permite HSTS ou CSP. Configure-os separadamente depois de testá-los no site real.

Metadados de resposta baseados em padrões

Os metadados de resposta estão desabilitados por padrão. Habilite apenas os campos necessários; Fluxheim os deriva do resultado real do cache, da falha do proxy e dos bytes de resposta finais sem expor chaves de cache, endereços de back-end, nomes DNS ou erros brutos.

[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
CampoO que relata
Cache-StatusResultados de cache RFC 9211, como acerto, erro, encaminhamento obsoleto, revalidação, expiração e desvio.
Proxy-StatusDetalhes de baixa cardinalidade de RFC 9209 para falhas geradas por Fluxheim.
Content-DigestRFC 9530 SHA-256 sobre o conteúdo final da mensagem HTTP após a compactação.
Repr-DigestSHA-256 somente quando Fluxheim contém a representação completa selecionada.

Instantâneos ao vivo e reversão

Os snapshots autenticados podem publicar um candidato validado, substituir o roteador ativo e reverter sem reiniciar as implantações normais somente de roteamento. Cada solicitação permanece em uma geração de roteador do início ao fim.

  • Mantenha o armazenamento de instantâneos em um diretório privado dedicado; diretórios não privados existentes e raízes do sistema de arquivos são rejeitados.
  • Use uma atualização de processo quando os serviços de descoberta ou integridade do balanceador de carga em segundo plano estiverem ativos.
  • Execute verificações de integridade de instantâneo após a publicação ou reversão e verifique se a geração selecionada sobrevive à reinicialização.
Leia o contrato instantâneo completo

Hábitos seguros

  • Run fluxheim --check-config before reloads.
  • Use um vhost por site ou fronteira de aplicação.
  • Mantenha secrets em ficheiros, ambiente ou container secrets, não em docs públicos.
  • Mantenha os ficheiros de configuração e todos os diretórios superiores existentes sob propriedade de confiança e sem permissão de escrita para o grupo ou outros utilizadores.
  • Substitua o processo quando forem alterados TLS, listeners, streams, UDP, ACME, limpeza da cache, rastreio ou definições de processos PHP-FPM geridos; o encaminhamento normal e as políticas aplicadas durante o pedido podem usar um recarregamento de snapshot.
  • Use limites ao nível da route para uploads e paths de aplicação caros.
  • Mantenha listeners admin e metrics privados.
Português