Reverse Proxy
Setze Fluxheim vor einen Anwendungsserver. Fluxheim übernimmt TLS, Header, Limits und die Upstream-Auswahl.
Basic proxy
[[vhosts]]
name = "app"
hosts = ["app.example.com"]
[[vhosts.routes]]
path_prefix = "/"
action = "proxy"
upstreams = ["127.0.0.1:3000"]
Routenauswahl
| Feature-Bereich | Nutze es, wenn |
|---|---|
path_exact | Eine URL braucht eine prazise Route. |
path_prefix | Ein ganzer URL-Unterbaum geht an ein Backend. |
strip_prefix | Das Backend soll den offentlichen Prefix nicht sehen. |
rewrite_prefix | Das Backend erwartet einen anderen internen Prefix. |
methods | Eine Route soll nur ausgewahlte HTTP-Methoden akzeptieren. |
Beispiel fur Pfad-Rewrite
[[vhosts.routes]]
name = "api"
path_prefix = "/api/"
strip_prefix = "/api/"
rewrite_prefix = "/internal/"
[vhosts.routes.proxy]
upstreams = ["10.0.0.20:8080"]
connect_timeout_secs = 5
read_timeout_secs = 30
send_timeout_secs = 30
CORS für Browser-Apps
Aktivieren Sie CORS nur, wenn Browseranwendungen auf bekannten Ursprüngen diese Route aufrufen müssen.
[headers.cors]
enabled = true
allow_origins = ["https://app.example.com"]
allow_methods = ["GET", "HEAD", "POST"]
allow_headers = ["authorization", "content-type"]
allow_credentials = true
max_age_secs = 600
- Fluxheim beantwortet gültige Preflight-Anfragen vor Ort; Abgelehnte Preflights geben
403zurück, ohne die Anwendung zu erreichen. - Kombinieren Sie keinen Wildcard-Ursprung mit Anmeldeinformationen.
- CORS ist keine Authentifizierung, Autorisierung oder CSRF-Schutz.
Produktionshinweise
- Halte die Anwendung auf Loopback oder in einem privaten Netzwerk.
- Setze Request-Body-Limits, bevor du Uploads freigibst.
- Use trusted proxy settings only for networks you control.
- Bevorzuge explizite Routen statt eines grossen Fallbacks, wenn Pfade unterschiedliche Sicherheitsregeln brauchen.