是否可以configurationHaProxy来平衡整个子网的stream量。 我试过192.168.50.0/24,但HaProxy得到错误。 这是为了云环境,所以如果我的服务器向外扩展,我不需要手动重新configurationHaProxy并重新启动服务。
我的configuration:
listen Cluster_3300 bind *:3300 mode tcp timeout client 10800s timeout server 10800s balance leastconn option httpchk option allbackups default-server port 9200 inter 2s downinter 5s rise 3 fall 2 slowstart 60s maxconn 1424 maxqueue 10000 weight 100 server app1 192.168.51.11:3306 check server app2 192.168.51.13:3306 check server app3 192.168.51.12:3306 check
所以最后3行是硬编码的,是否可以包含所有的子网虚拟机?
这是不可能的,而且轮询整个networking以查看服务器是否存在或响应是没有意义的。
您可以使用IP或主机名,但它们将在启动时解决。
您应该添加一些逻辑到您的云规模,以添加新的服务器到您的haproxy负载平衡器。
从HAProxy文档
server <name> <address>[:[port]] [param*] Declare a server in a backend
是分配给此服务器的内部名称。 该名称将显示在日志和警报中。 如果设置了“http-send-name-header”,它将被添加到发送到服务器的请求头中。
是服务器的IPv4或IPv6地址。 或者,支持可parsing的主机名,但在启动期间将parsing该名称。 地址“0.0.0.0”或“*”有特殊的含义。 它表示连接将被转发到与客户端连接相同的IP地址。 这在透明代理体系结构中非常有用,在这种体系结构中,客户端的连接被截获,并且haproxy必须转发到原始目标地址。 这或多或less是“透明的”关键字所做的,除了使用服务器可以限制并发性和报告统计信息。 可选地,可以在地址之前使用地址族前缀来强制系列,而不pipe地址格式如何,这可以用来指定不带斜线('/')的unix套接字的path。 目前支持的前缀是: – 'ipv4 @' – >地址始终为IPv4 – 'ipv6 @' – >地址始终为IPv6 – 'unix @' – >地址是本地unix套接字的path – 'abns @' – >地址位于抽象名称空间(仅限于Linux)您可能需要在地址参数中引用一些环境variables,请参见有关环境variables的第2.3节。 “init-addr”设置可用于修改启动时应parsingIP地址的方式。
是一个可选的端口规范。 如果设置,所有的连接将被发送到这个端口。 如果未设置,将使用与客户端连接的相同端口。 该端口也可以用“+”或“ – ”作为前缀。 在这种情况下,将通过将此值添加到客户端的端口来确定服务器的端口。
是这个服务器的参数列表。 “服务器”关键字接受很多选项,并有一个完整的部分专用于它。 有关更多详细信息,请参阅第5节。
例子 :
服务器优先10.1.1.1:1080 cookie首先检查1000服务器第二次10.1.1.2:1080 cookie第二次检查inter 1000服务器transp ipv4 @服务器备份“$ {SRV_BACKUP}:1080”备份服务器www1_dc1“$ {LAN_DC1} .101:80 “server www1_dc2”$ {LAN_DC2} .101:80“