Articles of haproxy

在负载均衡的apache节点上复制数据

我正在使用指向5个Apache节点的haproxy,问题是我想复制这些节点之间的Apache数据。 我已经安装了DRBD,它只能在2个节点上运行 rsync不是一个好的select,因为它的性能不好。 有没有办法在5个节点之间复制数据?

Haproxy hdr_ip acl不受reqidel的影响?

我有一个位于负载均衡器后面的服务器,但暂时也可以直接访问。 我有一个应该能够访问它的IP地址的白名单。 给定以下configuration: frontend http bind 0.0.0.0:80 acl from_internal src 10.0.0.0/8 reqidel ^X-Cluster-Client-Ip unless from_internal acl ip_allow src -f /etc/haproxy/allow.txt acl lb_allow hdr_ip(X-Cluster-Client-Ip) -f /etc/haproxy/allow.txt http-request allow if ip_allow http-request allow if lb_allow http-request deny 我想允许来自某些IP( ip_allow )的直接请求。 我想允许负载平衡器为( lb_allow )设置X-Cluster-Client-Ip的lb_allow 。 但是,我只想从负载平衡器( 10.0.0.0/8 )中信任这个头文件。 在所有其他情况下,我只是想删除它。 看起来应用ACL时头不会被删除 – 如果我将X-Cluster-Client-Ip设置为可信IP并直接连接到服务器,那么我就可以通过。 有没有解决的办法?

LVS + HA代理,用于L4到L7负载平衡

目前我们正在使用HA代理来满足我们的负载平衡需求。 我们正在计划将LVS与HA代理集成起来,以创build一个负载平衡解决scheme,可以负责L4到L7负载均衡和HA。 去LVS的原因是 更好的L4支持长期的TCP会话 直接服务器返回(在HA代理中不可能) 在活动负载平衡器closures时故障切换现有连接。 现在,使用HA Proxy,备份负载均衡器只负责将新会话负载平衡到后端服务器,并且由主动负载平衡器服务的现有连接丢失。 我们希望,因为LVS在内核空间中运行,所以即使对于现有的会话,也可以进行故障切换。 这里有人使用LVS和HA代理相结合吗? 如果是这样的话,请您提供一些关于如何整合两者的指针 – 如果所有的数据包都被LVS接收,然后L7请求被发送到HA代理服务器?

如何添加/删除Haproxy后面的新服务器以最小的干扰

Haproxy目前正在平衡2台服务器A和B之间的负载。 客户端通过持久的TCP连接连接到这些服务器。 问题:我们想从服务器A升级到更强大的服务器C 我们如何添加第三台服务器C并删除A而不中断/断开客户端? 如果使用iptables将连接从Aredirect到C ,如果我们在某个时刻closures了A ,还是需要保持联机才能继续将现有客户redirect到C ,它仍然可以工作吗?

Haproxy负载均衡TPS低于单节点

我有2个后端运行apache2服务器,并在他们和客户之间有一个haproxy。 如果我testing了这些apache2服务器的任何一个ab我得到了一个1500TPS的北部,但是当我进行台架testingHAproxy时,我得到的值小于这个值。 这是没有道理的。 我正在使用简单的循环algorithm进行平衡,并将我的maxconn设置为8000,以便进行较好的测量。 我期望的是接近每个apache2节点(2800TPS)的总tps的tps。 相反,我得到的值比两个apache2节点中的任何一个都less。 可能是什么原因? 我做的板凳testing ab -t 60 -c 400 haproxyIP:1234 HEre是HAproxyconfiguration非常标准,但应该完成我所需要的。 global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy maxconn 8000 user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull retries 3 maxconn 8000 contimeout 5000 clitimeout 50000 srvtimeout 50000 errorfile 400 /etc/haproxy/errors/400.http errorfile […]

如何为给定的后端指定备用错误文件?

我们目前使用错误文件在遇到错误时向客户端发送各种40x / 59x错误消息。 目前这些错误文件是html格式的,但是我想根据来自客户端的格式请求参数来切换它们 – 也就是说,在某些情况下,根据预定义的请求参数的存在,我需要能够发送错误在XML而不是HTML。 除了将后端分成两个端点之外,我认为没有办法有条件地做到这一点 – 这将是非常丑陋的。 有没有办法做到这一点,而不分裂后端? 我们正在使用haproxy v1.5.1

是否有可能reprorep每个服务器haproxy负载均衡器?

在负载均衡HAProxy设置中有3个服务器。 server serv1 192.168.1.101:8080 check inter 2000 rise 1 fall 1 server serv2 192.168.1.102:8080 check inter 2000 rise 1 fall 1 #The legacy Apache server will listen on port 81 and perform URL rewriting/load balancing server serv_legacy 192.168.1.110:81 check inter 2000 rise 1 fall 1 但是,3个服务器(serv_legacy)中的一个响应不同的url请求。 我想知道是否有可能只为第三台服务器reqrep urlredirect。

haproxy:限制WebSocket有效负载长度

我的服务器通过4个本地websocket服务器分发websocket客户端连接,我需要阻止这些websocket服务器充斥大量的数据。 题: 是否有可能指示haProxy blacklist + close客户端连接时,该连接发送一大块数据? 例如,我不希望普通用户每个消息/有效载荷的字节数超过1024字节,这可以翻译成每秒不超过5条消息。

使用正则expression式和URL参数与Haproxy 1.5 ACL拼合

我在前端使用了SSL的Haproxy 1.5.3安装程序,并将SSL发送到后端服务器。 模式是http并使用acls来确定粘性。 我的testing请求如下: wget https://domain.com/ping?IPT=transpor6t&FROM_ADDRESS=409 wget https://domain.com/ping?FROM_ADDRESS=409&IPT=transport6 真正的url将有5个不同的参数,FROM_ADDRESS将是第三个参数。 我需要在第三个参数上创build粘性请求,并且似乎有很多方法可以使用Haproxy来做到这一点,即使使用正则expression式代价昂贵,它也提供了最大的灵活性,所以这就是我们select的(在这个例子中,我们离开了正则expression式来简化问题,并决定只是看看参数的最后一个字符,所以要确保正则expression式不是问题。 我们的ACL设置(更多的testing床,看看我们能否得到它的工作) acl block_1 urlp_end(FROM_ADDRESS) 0 acl block_2 urlp_end(FROM_ADDRESS) 9 use_backend block_1_hosts if block_1 use_backend block_2_hosts if block_2 backend block_1_hosts option httpchk GET /ping server s1 s1.domain.com:443 weight 1 maxconn 2000 check ssl verify none inter 2000 server s2 s2.domain.com:443 weight 1 maxconn 2000 check ssl […]

为RPCconfigurationHAProxy,只有一台主机

我已经尝试了一些关于如何实现这个目标的想法,包括Squid,Pound,现在HAProxy,到目前为止,它似乎是最接近的。 我有一个NGinx服务器,我已经把它设置成面向公众的主要Web服务,除了连接到服务MS特定服务(如RDP网关和DirectAccess)。 当前设置在这里 。 基本上,这需要连接到MS服务器,如果(并且只有)主机头匹配名称manager.remote.tsaukpaetra.com ,否则连接到相关端口的所有其他回环。 不幸的是,似乎没有正常工作,对pipe理员框的正常HTTP请求似乎工作正常(我到默认的登陆页面去https://manager.remote.tsaukpaetra.com ),但涉及任何涉及RPC从来没有通过。 当然,如果我使用主机文件将DNS条目重新映射到本地等效IP地址,那么所有的工作都很简单! :'( 不幸的是,在MS服务器端不会有任何日志logging,不pipe是在IIS日志还是其他日志中,所以我对于错在哪里是毫无头绪的。 根据Haproxydebugging日志,它会使初始连接正常,例如,每次连接尝试RD网关服务时都会出现这两行: Aug 31 22:04:02 namp haproxy[3028]: 192.168.1.1:52278 [31/Aug/2014:22:04:02.891] Listener~ manager/manager 31/0/2/1/34 401 890 – – —- 1/1/0/1/0 0/0 "RDG_OUT_DATA /remoteDesktopGateway/ HTTP/1.1" Aug 31 22:04:02 namp haproxy[3028]: 192.168.1.1:52278 [31/Aug/2014:22:04:02.925] Listener~ manager/manager 4/0/1/-1/5 -1 0 – – SD– 0/0/0/0/0 0/0 "RDG_OUT_DATA /remoteDesktopGateway/ HTTP/1.1" 但当然连接失败并立即死亡。 微软的testing方法是浏览到/ Rpc,看看是否出现拒绝访问(403.2或其他)错误,这显然正在发生(某种程度上,但不是正确的错误代码编号/子编号)。 […]