为什么我的 HAProxy 内容切换配置会出现错误?

为什么我的 HAProxy 内容切换配置会出现错误?

我正在将一些基础设施从托管特定网站的多台服务器迁移到使用负载平衡架构的架构中HAProxyOpenBSD 4.6 macppc 上的 1.3.15.7。当然,我首先要为当前设置(特定服务器上的特定站点)配置内容切换,我的 /etc/haproxy/haproxy.cfg 如下:

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

server1目标是让除域名& 之外的所有域名都由 提供服务sub1.domain.tld,而 &sub2.domain.tld则应由 提供服务server2。但是,当我尝试启动 HAProxy 时,出现以下错误:

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

我查看了HAProxy 1.3 文档http://upstre.am/2008/01/09/using-haproxy-with-multiple-backends-aka-content-switching/,但我看不出我哪里做错了。所有示例似乎都不需要option transparent平衡模式。此外,1.3 版文档中奇怪地省略了该选项的文档dispatch,但我怀疑它对我的故障排除不会有帮助。

我哪里做错了?

答案1

您忘记了“balance roundrobin”(或等效代码)这一行,因为您需要在后端使用平衡算法。此外,您正在进行内容切换,因此请在前端或默认部分添加“option httpclose”,否则将无法匹配保持连接的第二个请求。

相关内容