HAProxy - encaminhar para um servidor da web diferente com base no URI

14

Eu tenho um farm HTTP com a seguinte configuração:

listen webfarm 10.254.23.225:80
       mode http
       balance roundrobin
       cookie SERVERID insert
       option httpclose
       option forwardfor
       option httpchk HEAD /check.txt HTTP/1.0
       server webA 10.254.23.4:80 cookie A check
       server webB 10.248.23.128:80 cookie B check

Gostaria de adicionar uma opção que encaminharia todas as solicitações de um URI específico (ou seja, especial) para um terceiro servidor da web. Como devo fazer isso?

    
por Saggi Malachi 30.03.2010 / 00:44

1 resposta

22

Aqui está uma postagem do blog que escrevi sobre balanceamento de carga com base nos cabeçalhos de host:

link

Se você deseja corresponder a um URI ou diretório, sugiro usar path_beg em vez de hdr_end que é usado no exemplo fornecido nessa página. Veja abaixo um exemplo de como você pode fazer isso com sua configuração:

frontend http-in
    bind 10.254.23.225:80
    acl has_special_uri path_beg /special
    use_backend special_server if has_special_uri
    default_backend webfarm

backend webfarm
    balance roundrobin
    cookie SERVERID insert
    option httpchk HEAD /check.txt HTTP/1.0
    option httpclose
    option forwardfor
    server webA 10.254.23.4:80 cookie webA check
    server webB 10.248.23.128:80 cookie webB check

backend special_server
    balance roundrobin
    cookie SERVERID insert
    option httpchk HEAD /check.txt HTTP/1.0
    option httpclose
    option forwardfor
    server webC 10.0.0.1:80 cookie webC check

Espero que ajude!

    
por 30.03.2010 / 22:38