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.

#haproxy #networking #sysadmin