Warum erhalte ich Fehler in meiner HAProxy-Content-Switching-Konfiguration?

Warum erhalte ich Fehler in meiner HAProxy-Content-Switching-Konfiguration?

Ich migriere die Infrastruktur von mehreren Servern, auf denen bestimmte Websites gehostet werden, auf eine Lastenausgleichsarchitektur mitHAProxy1.3.15.7 auf OpenBSD 4.6 macppc. Natürlich beginne ich mit der Konfiguration der Inhaltsumschaltung für das aktuelle Setup (bestimmte Sites auf bestimmten Servern) und meine /etc/haproxy/haproxy.cfg sieht wie folgt aus:

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

Das Ziel ist, dass alle Domänen von bedient werden, server1außer den Domänen sub1.domain.tld& sub2.domain.tld, die stattdessen von bereitgestellt werden sollen server2. Wenn ich jedoch versuche, HAProxy zu starten, erhalte ich die folgenden Fehler:

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

Ich habe mir die Beispiele angesehen indie HAProxy 1.3 DokumentationUndhttp://upstre.am/2008/01/09/using-haproxy-with-multiple-backends-aka-content-switching/, aber ich sehe nicht, was ich falsch gemacht habe. Keines der Beispiele scheint option transparenteinen Balance-Modus oder einen solchen zu erfordern. Außerdem dispatchfehlt die Dokumentation für die Option seltsamerweise in der 1.3-Dokumentation, aber ich bezweifle, dass sie mir bei der Fehlersuche helfen würde.

Was habe ich falsch gemacht?

Antwort1

Sie haben die Zeile „balance roundrobin“ (oder gleichwertig) vergessen, da Sie einen Ausgleichsalgorithmus in einem Backend benötigen. Außerdem führen Sie Content Switching durch, fügen Sie also bitte „option httpclose“ in Ihrem Frontend- oder Standardbereich hinzu, da andernfalls zweite Anfragen von Keep-Alive-Verbindungen nicht abgeglichen werden.

verwandte Informationen