Por que estou recebendo erros na minha configuração de troca de conteúdo do HAProxy?

Por que estou recebendo erros na minha configuração de troca de conteúdo do HAProxy?

Estou migrando algumas infraestruturas de vários servidores que hospedam sites específicos para uma arquitetura de balanceamento de carga usandoHAProxy1.3.15.7 no OpenBSD 4.6 macppc. Naturalmente, estou começando configurando a troca de conteúdo para a configuração atual (sites específicos em servidores específicos) e meu /etc/haproxy/haproxy.cfg é o seguinte:

global
    log 127.0.0.1   local0
    log 127.0.0.1   local1 notice
    #log loghost    local0 info
    maxconn 1024
    chroot /var/haproxy
    uid 604
    gid 604
    daemon
    #debug
    #quiet
    pidfile /var/run/haproxy.pid

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    option  redispatch
    retries 3
    maxconn 2000
    contimeout      5000
    clitimeout      50000
    srvtimeout      50000
    stats enable
    stats auth user:pass

frontend http_proxy *:80
    # check to see which domain the reguest is for
    acl host_tld.domain.sub1 hdr_end(host) sub1.domain.tld
    acl host_tld.domain.sub2 hdr_end(host) sub2.domain.tld
    # send to the correct server
    use_backend server2 if host_tld.domain.sub1 or host_tld.domain.sub2
    default_backend server1

backend server1
    server httpd_server1 192.168.1.3:80

backend server2
    server httpd_server2 192.168.1.4:80

O objetivo é que todos os domínios sejam atendidos, server1exceto os domínios sub1.domain.tldque sub2.domain.tlddeveriam ser distribuídos server2. No entanto, quando tento iniciar o HAProxy, recebo os seguintes erros:

parsing /etc/haproxy/haproxy.cfg : backend 'server2' has no dispatch address and is not in transparent or balance mode.
parsing /etc/haproxy/haproxy.cfg : backend 'server1' has no dispatch address and is not in transparent or balance mode.
Errors found in configuration file, aborting.
Error reading configuration file : /etc/haproxy/haproxy.cfg

Eu olhei os exemplos listados ema documentação do HAProxy 1.3ehttp://upstre.am/2008/01/09/using-haproxy-with-multiple-backends-aka-content-switching/, mas não vejo onde errei. Nenhum dos exemplos parece exigir option transparentum modo de equilíbrio. Além disso, a documentação da dispatchopção foi curiosamente omitida da documentação 1.3, mas duvido que seja útil na minha solução de problemas de qualquer maneira.

Onde foi que eu errei?

Responder1

Você esqueceu a linha "balance roundrobin" (ou equivalente), pois precisa ter um algoritmo de balanceamento em um backend. Além disso, você está trocando de conteúdo, então adicione "opção httpclose" em seu frontend ou seção de padrões, caso contrário, as segundas solicitações de conexões keep-alive não serão correspondidas.

informação relacionada