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 включает мониторинг — без него трафик слепо идёт и на мёртвый бэкенд.

#nginx #haproxy #linux