Openbsd

為什麼我的 HAProxy 內容切換配置中出現錯誤?

  • January 20, 2010

我正在將一些基礎架構從託管特定站點的多個伺服器遷移到在 OpenBSD 4.6 macppc 上使用HAProxy 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平衡模式。此外,dispatch1.3 文件中奇怪地省略了該選項的文件,但我懷疑它對我的故障排除有幫助。

我哪裡出錯了?

您忘記了“平衡循環”(或等效)這一行,因為您需要在後端有一個平衡算法。另外,你正在做內容切換,所以請在你的前端或預設部分添加“選項 httpclose”,否則第二次保持連接請求將無法匹配。

引用自:https://serverfault.com/questions/104350