Skip to main content

Configuração de URL Path no HAPROXY

Arquivo exemplo haproxy.cfg

global
    log /dev/log local0
#    log 127.0.0.1 local0 info
    daemon
    log stdout format raw local0
    maxconn 2048
    user haproxy
    group haproxy

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    timeout connect 5000ms
    timeout client  50000ms
    timeout server  50000ms
    retries 3

listen stats
    bind *:1120
    mode http
    stats enable
    stats uri /stats
    stats refresh 10s
    stats auth admin:senha123


######################################
# FRONTEND 1 – porta 2023
######################################
frontend http_front_2023
    bind *:2023
    default_backend doc_backend_2023

######################################
# FRONTEND 2 – porta 2024
######################################
frontend http_front_2024
    bind *:2024
    default_backend doc_backend_2024

######################################
# FRONTEND 3 – porta 2025
######################################
frontend http_front_2025
    bind *:2025
    default_backend doc_backend_2025

######################################
# BACKEND 1 – para frontend 2023
######################################
backend doc_backend_2023
    balance roundrobin
    stick-table type string len 64 size 100k expire 1h store server_id
    stick on path       # registra somente o /teste
#  stick on concat(req.hdr(host), path) - entrada para registrar url e /teste
#  stick on concat(concat(req.hdr(host), path), concat("?", query))  - entrada para registrar  url e /teste?normal (query)

    server srv1_2023 192.168.0.101:2023 check
    server srv2_2023 192.168.0.102:2023 check
    server srv3_2023 192.168.0.103:2023 check

######################################
# BACKEND 2 – para frontend 2024
######################################
backend doc_backend_2024
    balance roundrobin
    stick-table type string len 64 size 100k expire 1h store server_id
    stick on path       # registra somente o /teste
#  stick on concat(req.hdr(host), path) - entrada para registrar url e /teste
#  stick on concat(concat(req.hdr(host), path), concat("?", query))  - entrada para registrar  url e /teste?normal (query)

    server srv1_2024 192.168.0.104:2024 check
    server srv2_2024 192.168.0.105:2024 check
    server srv3_2024 192.168.0.106:2024 check

######################################
# BACKEND 3 – para frontend 2025
######################################
backend doc_backend_2025
    balance roundrobin
    stick-table type string len 64 size 100k expire 1h store server_id
    stick on path       # registra somente o /teste
#  stick on concat(req.hdr(host), path) - entrada para registrar url e /teste
#  stick on concat(concat(req.hdr(host), path), concat("?", query))  - entrada para registrar  url e /teste?normal (query)

    server srv1_2025 192.168.0.107:2025 check
    server srv2_2025 192.168.0.108:2025 check
    server srv3_2025 192.168.0.109:2025 check