Load balancer
Uruchom several upstreams behind one public endpoint. Zacznij simple, then add health checks and runtime controls.
Dwa upstreamy
[[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"]
Kontrole balancing
| Kontrola | Użyj, gdy |
|---|---|
upstream_weights | Strona backenduy powinny otrzymywać różne traffic shares. |
backup_upstreams | Niektóre backendy powinny być używane tylko, gdy primary choices zawiodą. |
drain_upstreams | Strona backendu powinien dokończyć istniejącą pracę, ale nie otrzymywać nowego traffic. |
disabled_upstreams | Strona backendu musi być trzymany poza rotacją. |
upstream_max_in_flight | Strona backendu potrzebuje local concurrency cap. |
Konfiguracja dynamic upstream file
[vhosts.routes.proxy]
upstreams_file = "/run/fluxheim/backends/app.txt"
upstreams_file_refresh_secs = 5
Używaj static upstreams, gdy potrzebujesz weights, aliases, backup, drain lub disabled state. File i DNS refreshed pools celowo zachowują mniejszy contract.
Co daje
- Focused load-balancer release images are available.
- Health checki mogą trzymać uszkodzone backendy poza rotacją.
- Operacje drain i force-down pomagają przy oknach maintenance.
- Managed-cookie affinity jest dostępne, gdy sesje potrzebują stabilnego backendu.