configuration Basics
FluxheimはTOMLを使います。Unknown fieldsは拒否されるため、restart前にスペルミスが失敗します。
基本形
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
configの整理方法
| 領域 | そこに属するもの |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Global 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 | operational visibility向けのPrometheusとexport listeners。 |
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には1つのmatcherと1つのactionがあります。exact paths、longest prefixes、regex support有効時のregex routes、最後にfallback routeの順で勝ちます。
安全な習慣
- 実行
fluxheim --check-configreloadsの前に。 - siteまたはapplication boundaryごとに1つのvhostを使います。
- secretsはpublic docsではなく、files、environment、container secretsに置きます。
- uploadsや高コストapplication pathsにはroute-level limitsを使います。
- adminとmetrics listenersはprivateに保ちます。