-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathload-balancer-enterprise.toml
More file actions
118 lines (105 loc) · 2.68 KB
/
Copy pathload-balancer-enterprise.toml
File metadata and controls
118 lines (105 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
[server]
listen = ["127.0.0.1:8080"]
trusted_proxies = []
[server.process]
daemon = false
pid_file = "/run/fluxheim/fluxheim.pid"
upgrade_sock = "/run/fluxheim/fluxheim-upgrade.sock"
threads = 2
listener_tasks_per_fd = 1
work_stealing = true
upstream_keepalive_pool_size = 256
max_retries = 16
[admin]
enabled = false
listen = "127.0.0.1:9090"
require_loopback = true
[metrics]
enabled = true
listen = "127.0.0.1:9091"
require_loopback = true
[logging]
level = "info"
format = "json"
target = "stderr"
[logging.access]
enabled = true
include_host = true
include_path = true
request_id = true
[proxy]
upstreams = [
"127.0.0.1:3001",
"127.0.0.1:3002",
"127.0.0.1:3003",
"127.0.0.1:3004",
]
upstream_aliases = ["app-a", "app-b", "app-c", "app-dr"]
upstream_tags = [["blue", "primary"], ["blue", "primary"], ["green", "canary"], ["dr"]]
upstream_weights = [4, 4, 2, 1]
upstream_priority_groups = [100, 100, 50, 10]
upstream_priority_group_min_active = 2
upstream_localities = ["site-a", "site-a", "site-b", "site-dr"]
preferred_upstream_localities = ["site-a"]
upstream_max_in_flight = [500, 500, 250, 100]
backup_upstreams = ["127.0.0.1:3004"]
drain_upstreams = ["127.0.0.1:3003"]
disabled_upstreams = []
upstream_tls = false
connect_timeout_secs = 3
read_timeout_secs = 30
send_timeout_secs = 30
downstream_write_timeout_secs = 30
[proxy.load_balance]
selection = "least-time"
max_iterations = 256
all_down_status = 503
[proxy.load_balance.health_check]
enabled = true
protocol = "http"
interval_secs = 2
consecutive_success = 2
consecutive_failure = 3
parallel = true
method = "GET"
path = "/healthz"
expected_statuses = [200, 204]
expected_status_ranges = [{ start = 200, end = 299 }]
expected_headers = [{ name = "x-fluxheim-health", value = "ready" }]
expected_body_contains = ["ready"]
reuse_connection = false
connect_timeout_secs = 1
read_timeout_secs = 2
[proxy.load_balance.passive_health]
enabled = true
consecutive_failure = 3
ejection_secs = 30
min_healthy_backends = 1
failure_statuses = [500, 502, 503]
failure_status_ranges = [{ start = 520, end = 529 }]
max_latency_ms = 2000
[proxy.load_balance.slow_start]
enabled = true
duration_secs = 30
[proxy.load_balance.persistence]
enabled = true
mode = "managed-cookie"
cookie = "fluxheim_lb"
ttl_secs = 600
table_max_entries = 65536
managed_cookie_path = "/"
managed_cookie_secure = true
managed_cookie_http_only = true
managed_cookie_same_site = "lax"
[proxy.load_balance.retry]
enabled = true
max_retries = 2
methods = ["GET", "HEAD", "OPTIONS"]
statuses = [500, 502, 503]
status_ranges = [{ start = 520, end = 529 }]
budget_per_window = 1000
budget_window_secs = 1
[proxy.load_balance.queue]
max_waiting = 512
timeout_ms = 250
retry_interval_ms = 10