所有后端服务器都必须支持haproxy启动吗?

时间:2016-01-06 12:17:55

标签: configuration haproxy

我正在尝试使用以下配置启动Haproxy负载均衡器:

global
  log 127.0.0.1 local0
  log 127.0.0.1 local0 notice

resolvers docker
  nameserver dnsmasq 1.2.3.4:53

defaults
  mode http
  log global
  option httplog
  option  dontlognull

frontend ft_radix_real
  bind *:61616
  maxconn 6000
  acl is_websocket hdr(Upgrade) -i WebSocket
  acl is_websocket hdr_beg(Host) -i ws
  use_backend bk_radix_real if is_websocket

backend bk_radix_real
  balance roundrobin
  option forwardfor
  server radix-real-1 1.2.3.4:1884 check resolvers docker resolve-prefer ipv4
  server radix-real-2 1.2.3.4:1884 check resolvers docker resolve-prefer ipv4
  server radix-real-3 1.2.3.4:1884 check resolvers docker resolve-prefer ipv4
  server radix-real-4 1.2.3.4:1884 check resolvers docker resolve-prefer ipv4

listen stats
   mode http
   option httplog
   option  dontlognull
   bind *:1936
   stats enable
   stats scope ft_radix_real
   stats scope bk_radix_real
   stats uri /
   stats realm Haproxy\ Statistics
   stats auth admin:admin

当所有后端服务器都启动时,此配置有效。但是,即使某些(并非所有)后端服务器没有运行,我也希望能够启动Haproxy。我检查了配置文档但找不到解决方案。有可能吗?

2 个答案:

答案 0 :(得分:0)

我没有看到任何问题,检查就在那里。将检查服务器,将标记死亡的服务器,只有剩余的有效服务器将处理流量。您可能需要描述您正在面对的问题类型。

答案 1 :(得分:0)

从1.7开始,您可以启动HAproxy而无需在启动时解析所有主机:

defaults # never fail on address resolution default-server init-addr none

https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#init-addr