我正在尝试研究以下情况下负载平衡长时间运行的TCP连接的最佳方法: 我们有多台服务器在一组冗余的防火墙之后,并且客户端build立长期运行(通常是10-15小时)的TCP连接到我们的后端服务器。 目前,“负载均衡”是通过客户端循环方法处理的,通过一系列IP地址,这些IP地址全部驻留在我们的防火墙中,并相应地NAT到后端服务器。 我想摆脱这种方式,只有一个公共IP,并有一个单独的负载平衡器,可以检查服务器的健康/负载,并相应地分配传入的客户端连接请求。 这里的一个问题是,每个客户端在3个不同的端口上build立3个套接字连接,我更喜欢这些连接是“粘性”的,所以这3个连接请求都发送到同一个后端服务器。 我一直在看例如HAProxy,但我不确定是否真的适合我的情况。 我们有一个相对较低的连接数(~300个客户端*每个3套接字连接)。 通常我们会看到每个sockets的连续数据传输量〜15KB / s。 任何input这是非常感谢! 谢谢, 汤姆
我遇到了一些HAProxyconfiguration问题。 我一直在玩它,试图让它更适应高服务器负载和拒绝服务。 然而,我觉得它工作的很好,直到突然之间,我是一个(D)DoS攻击的受害者 – Haproxy报告后端下降,即使我仍然可以通过直接端口访问它。 有人可以检查我的HAProxyconfiguration,看看是否有什么地方我搞砸了,或者为什么我会遇到这个..我似乎无法理解为什么会发生这种情况。 在此先感谢(当然之后)。 全球 # Global Max Connections maxconn 20000 # Various Other Settings pidfile /var/run/haproxy.pid stats socket /var/run/haproxy.stat mode 600 level admin stats timeout 5m chroot /usr/share/haproxy daemon # User Settings user haproxy group haproxy defaults # Default configuration settings for Haproxy retries 2 maxconn 19500 timeout server 10s timeout […]
是否有可能在一个后端检查两个条件? 例 backend web-static option httpchk GET /path/alive.php HTTP/1.1\r\nHost:\ www1.domain.com option httpchk GET /path2/alive.php HTTP/1.1\r\nHost:\ www1.domain.com server appsrv1 192.168.1.10:80 check inter 3000 weight 1
我们正在使用HA-Proxy version 1.5.11 2015/01/31 ,从昨天我们注意到,通过https的所有对我们的服务的请求是非常缓慢的。 从Chrome开发者控制台中,我们可以看到以下时间: Initial Connection 7.59s SSL 6.42s 我们testing了socket的统计信息 # ss -s Total: 2080 (kernel 2088) TCP: 2674 (estab 2141, closed 433, orphaned 84, synrecv 0, timewait 433/0), ports 0 所以它可能远低于65k端口。 以下是我们的haproxy.cfg # Global configuration global log 127.0.0.1 local0 notice maxconn 50000 stats socket /tmp/proxystats level admin tune.ssl.default-dh-param 2048 #user deploy #group […]
我使用HTTP在3个riak节点前面填充haproxy。 我想在响应头中的后端名称和/或IP。 就像是: X-Proxy-Backend: riak-1 10.0.0.1 pipe他呢。 我怎样才能做到这一点?
我有一个HAProxy路由HTTPS没有终止使用SNI。 该configuration类似于以下内容: frontend ft_ssl_vip bind 0.0.0.0:5000 mode tcp option tcplog tcp-request inspect-delay 5s tcp-request content accept if { req.ssl_hello_type 1 } default_backend bk_ssl_default # Using SNI to take routing decision backend bk_ssl_default mode tcp acl application_1 req.ssl_sni -i foo.example.com acl application_2 req.ssl_sni -i bar.example.com use-server server1 if application_1 use-server server2 if application_2 use-server server3 if […]
希望有人可以帮助确认,如果这假设工作? 我试图将3个子域的stream量路由到相同的haproxy主机; 这是我的设置 haproxy具有一个接口IP 10.10.10.100和DNS名称haproxy01.mydomain.com 与之相关的3个CNAMElogging; sub1.mydomain.com,sub2.mydomain.com和sub3.mydomain.com 所有传入的stream量都是443端口。 有两个后端应用程序服务器接受三个端口8081,8082,8083的stream量,假设; sub1.mydomain.com为8081 sub2.mydomain.com为8082和sub3.mydomain.com为8083 该应用程序需要SSL通过只有端口8081stream量,所以我相信我必须使用TCP模式为8082和8083的其他stream量也是SSL,但它可以在Haproxy终止,但为了testing,我去了所有的TCP模式。 我的configuration部分实现这一点在下面; #Application Setup frontend mytraffic bind *:443 mode tcp acl host_sub1 hdr(host) -i sub1.mydomain.com acl host_sub2 hdr(host) -i sub2.mydomain.com acl host_sub3 hdr(host) -i sub3.mydomain.com use_backend sub1_nodes if host_sub1 use_backend sub2_nodes if host_sub2 use_backend sub3_nodes if host_sub3 option tcplog backend sub1_nodes mode tcp balance […]
我试图修改我当前的haproxyconfiguration,以支持其他服务器(70%,15,15)有人知道这是可能的吗? 阅读文档,我看到一个“重量”选项,但是我对生产服务器有些厌烦。 这是我目前的configuration: listen MySQL 10.10.10.14:3306 mode tcp balance roundrobin option persist server sql1 10.10.10.4:3306 server sql2 10.10.10.5:3306 server sql3 10.10.10.6:3306
我最近接pipe了一个使用HAProxy的环境,我试图学习configuration,这是什么意思,但我发现它的一些方面并不清楚。 我认为上述意思是说,如果主机头以“foo.bar.com”开头,那么使用cdn cdn_name,但我不完全确定。 有人可以为我确认吗? 谢谢!
我有兴趣在我们的MySQL环境中使用HA代理作为故障转移/负载均衡器。 我们有一个主 – 主+ 2从设置。 我想为主/主设置,即使他们设置它,只写入一个主。 这是为了避免裂脑的问题。 我打算在HA代理上有一个单独的端口进行读取操作,并且要负载平衡。 是否有可能使用HA代理作为一个失败,如果是的话,你将如何设置? 是不是像roundrobin平衡,但给服务器之一的权重1和另一个权重为0? 有了这个想法,如果第一台服务器下线了,第二台服务器不pipe它的重量如何?