HAProxy ACL: роутинг по хосту и комбинация условий

Один и тот же frontend в HAProxy часто обслуживает сразу несколько доменов, и разводить их по backend удобнее не по пути запроса, а по заголовку Host: frontend https_in bind *:443 acl host_api hdr(host) -i api.example.com acl host_admin hdr(host) -i admin.example.com use_backend api_servers if host_api use_backend admin_servers if host_admin default_backend web_servers Флаг -i делает сравнение регистронезависимым — без него API.example.com и api.example.com считаются разными хостами, что почти никогда не то, что нужно. ...

October 13, 2026 · llexa

HAProxy: балансировка, ACL и health checks

HAProxy разделяет конфиг на frontend (что слушаем) и backend (куда шлём), в отличие от nginx, где всё описывается блоками server/location вперемешку. Такое разделение упрощает ACL — правила маршрутизации по пути, хосту или заголовку живут отдельно от списка бэкендов. frontend web bind *:80 acl is_api path_beg /api use_backend api_servers if is_api default_backend web_servers backend web_servers option httpchk GET /health server web1 10.0.0.1:8080 check server web2 10.0.0.2:8080 check option httpchk шлёт GET на /health, упавший чек убирает узел из ротации без перезапуска HAProxy. check в строке server включает мониторинг — без него трафик слепо идёт и на мёртвый бэкенд. ...

September 14, 2026 · llexa

HAProxy: frontend, backend и health check по отдельности

HAProxy проще воспринимать не как веб-сервер, а как балансировщик L4/L7 — логика делится на frontend (кто принимает трафик) и backend (куда отдать). frontend http_in bind *:80 acl is_api path_beg /api use_backend api_servers if is_api default_backend web_servers backend web_servers balance roundrobin server web1 10.0.0.1:8080 check server web2 10.0.0.2:8080 check backend api_servers balance leastconn server api1 10.0.0.3:9000 check inter 2000 rise 2 fall 3 check — обязательный флаг, без него HAProxy не уберёт мёртвый сервер из ротации. inter 2000 rise 2 fall 3 — проверка раз в 2 секунды, 2 успеха возвращают сервер в строй, 3 провала выводят. ACL по path_beg роутит /api в отдельный backend без отдельного frontend. ...

July 30, 2026 · llexa