为什么我在HAProxy内容切换configuration中遇到错误?

我正在使用OpenBSD 4.6 macppc上的HAProxy 1.3.15.7将一些基础架构从托pipe特定站点的多个服务器迁移到负载平衡架构。 自然,我开始为当前设置(特定服务器上的特定站点)configuration内容切换,而我的/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.tldsub2.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选项的文档,但是我怀疑这对我的故障排除是有帮助的。

我哪里错了?

您忘记了“平衡roundrobin”(或同等学历)的行,因为您需要在后端有一个平衡algorithm。 此外,你正在做内容切换,所以请在你的前端或默认部分添加“选项httpclose”,否则保持连接的第二个请求将不会匹配。