Bilanciatore di carico
Esegui several upstreams behind one public endpoint. Inizio simple, then add health checks and runtime controls.
Due upstream
[[vhosts.routes]]
name = "app"
path_prefix = "/"
action = "proxy"
[vhosts.routes.proxy]
upstreams = [
"10.0.0.11:8080",
"10.0.0.12:8080",
]
upstream_weights = [100, 50]
upstream_aliases = ["app-a", "app-b"]
Controllololi bilanciamento
| Controllolo | Usalo quando |
|---|---|
upstream_weights | I backend devono ricevere quote di traffico diverse. |
backup_upstreams | Alcuni backend vanno usati solo quando le scelte primarie falliscono. |
drain_upstreams | Un backend deve finire il lavoro esistente ma non ricevere nuovo traffico. |
disabled_upstreams | Un backend deve restare fuori dalla rotazione. |
upstream_max_in_flight | Un backend richiede un cap di concorrenza locale. |
File upstream dinamico
[vhosts.routes.proxy]
upstreams_file = "/run/fluxheim/backends/app.txt"
upstreams_file_refresh_secs = 5
Usa upstream statici quando servono pesi, alias, backup, drain o stato disabled. I pool aggiornati da file e DNS mantengono intenzionalmente un contratto più piccolo.
Cosa offre
- Focused load-balancer release images are available.
- Gli health check possono tenere backend guasti fuori dalla rotazione.
- Le operazioni drain e force-down aiutano nelle finestre di manutenzione.
- L'affinity con cookie gestito è disponibile quando le sessioni richiedono un backend stabile.