/
dgrigorev
/
VoidCache
Обзор
Документация
Войти
/
dgrigorev
/
VoidCache
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
docker/haproxy/haproxy.cfg
80 строк
4 KB
Dmitry Grigorev
Added cluster configuration
10 мар 2026, 14:42
10 мар 2026, 14:42
3490c77
Код
Авторство
О чём код?
# haproxy.cfg – HAProxy config for VoidCache cluster # # Mode: TCP (layer 4) — passes RESP3 wire protocol through untouched. # Health check: sends PING\r\n, expects +PONG. # Balance: leastconn — routes new connections to the least-busy node. # # Stats UI: http://localhost:8404/stats (user: admin / pass: admin) # ───────────────────────────────────────────────────────────────────────────── global maxconn 50000 log stdout format raw local0 tune.bufsize 32768 # Allow HAProxy to resolve backend hostnames at runtime, not just startup. # This is required in Docker Compose because container DNS may not be ready # when HAProxy first starts. setenv RESOLVERS_ENABLED 1 defaults mode tcp log global option tcplog option dontlognull option redispatch retries 3 timeout connect 3s timeout client 5m timeout server 5m timeout check 2s # ── Docker internal DNS resolver ───────────────────────────────────────────── # 127.0.0.11 is Docker's embedded DNS server (always present in any container). # hold valid: cache a successful DNS lookup for 10s before re-querying. # hold nx/refused/other: retry failed lookups after 1s. resolvers docker nameserver dns1 127.0.0.11:53 resolve_retries 3 timeout resolve 1s timeout retry 1s hold nx 1s hold refused 1s hold other 1s hold valid 10s hold obsolete 0s # ── Stats & monitoring ──────────────────────────────────────────────────────── frontend stats bind *:8404 mode http stats enable stats uri /stats stats realm VoidCache\ HAProxy stats auth admin:admin stats refresh 5s stats show-legends stats show-node # ── VoidCache frontend ──────────────────────────────────────────────────────── frontend vcache_frontend bind *:6379 default_backend vcache_nodes # ── VoidCache backend ───────────────────────────────────────────────────────── backend vcache_nodes balance leastconn option tcp-check # Health check: send RESP inline PING, expect PONG tcp-check connect tcp-check send "PING\r\n" tcp-check expect string "+PONG" # resolvers docker — use Docker DNS for runtime resolution # init-addr none — do NOT fail at startup if hostname doesn't resolve yet; # HAProxy will retry until the container comes up # resolve-prefer ipv4 — skip IPv6 lookup (not needed in Docker bridge networks) server vcache-1 vcache-1:6379 check inter 5s fall 3 rise 2 weight 10 resolvers docker init-addr none resolve-prefer ipv4 server vcache-2 vcache-2:6379 check inter 5s fall 3 rise 2 weight 10 resolvers docker init-addr none resolve-prefer ipv4 server vcache-3 vcache-3:6379 check inter 5s fall 3 rise 2 weight 10 resolvers docker init-addr none resolve-prefer ipv4