负载均衡器
Run several upstreams behind one public endpoint. Start 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"]
均衡控制
| 控制 | 在以下情况使用 |
|---|---|
upstream_weights | Backend 应接收不同流量份额。 |
backup_upstreams | 某些 backend 只应在主选择失败时使用。 |
drain_upstreams | 一个 backend 应完成现有工作,但不再接收新流量。 |
disabled_upstreams | 一个 backend 必须退出轮换。 |
upstream_max_in_flight | 一个 backend 需要本地 concurrency cap。 |
动态 upstream 文件
[vhosts.routes.proxy]
upstreams_file = "/run/fluxheim/backends/app.txt"
upstreams_file_refresh_secs = 5
当需要 weights、aliases、backup、drain 或 disabled state 时使用静态 upstream。file 和 DNS refreshed pools 会刻意保持较小契约。
它提供什么
- Focused load-balancer release images are available.
- Health checks 可以让故障 backend 退出轮换。
- Drain 和 force-down 操作有助于维护窗口。
- 当 session 需要稳定 backend 时,可使用 managed-cookie affinity。