Load balancer
Стартирай several upstreams behind one public endpoint. Начало simple, then add health checks and runtime controls.
Два 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"]
Balancing контроли
| Контрол | Използвай, когато |
|---|---|
upstream_weights | Backend страна страна-ите трябва да получават различни traffic share-ове. |
backup_upstreams | Някои backend-и трябва да се използват само когато primary изборите fail-нат. |
drain_upstreams | Backend страна страна трябва да довърши текущата работа, но да не получава нов traffic. |
disabled_upstreams | Backend страна страна трябва да остане извън rotation. |
upstream_max_in_flight | Backend страна страна има нужда от local concurrency cap. |
Dynamic upstream file настройка настройка
[vhosts.routes.proxy]
upstreams_file = "/run/fluxheim/backends/app.txt"
upstreams_file_refresh_secs = 5
Използвай static upstream-и, когато ти трябват weights, alias-и, backup, drain или disabled state. File и DNS refreshed pool-ове умишлено пазят contract-а по-малък.
Какво дава
- Focused load-balancer release images are available.
- Health check могат да държат повредени backend-и извън rotation.
- Drain и force-down операции помагат при maintenance window.
- Managed-cookie affinity е наличен, когато session-и имат нужда от стабилен backend.