Articles of haproxy

有没有办法用haproxy“多播”一个请求?

我有一个haproxy背后的服务器云configuration。 Haproxy在服务器之间进行负载均衡。 但是有一些操作需要发送给每个服务器。 目前我从haproxy中独立完成,通过循环访问每个服务器: for i in `seq 1-10`; do wget -O /dev/null "http://server$i.local.exampe.com/clear/cache" done 是否有可能设置haproxy,以便 wget -O /dev/null "http://server.exampe.com/clear/cache" 可以将请求发送到每个活着的服务器?

单个HAProxy前端为不同的服务

所以我很高兴地使用HAProxy来负载平衡2台服务器的Web服务器。 现在我需要添加5个Web服务器来响应5个不同的主机名,我需要使用与上面相同的前端。 我试图使用ACL没有运气。 我有一个testing客户端与主机文件编译与所有主机名指向haproxy和我在前端使用类似于以下内容: acl hw1 hdr_beg(host) -i hw1.test.lan use_backend back_hw1 if hw1 然后我设置了一个back_hw1后端服务器,但它似乎从来没有匹配,当我尝试时,我得到“从服务器没有响应”。 所有Web服务器都使用HTTPS,并在安装第一个服务时正确设置了HAProxy中的SSL。 谢谢你的帮助。

高stream量websocket / haproxy调优

我有一个pubsub应用程序(主要是聊天,但也有一些其他的好东西被发布和sub-ed太)运行在节点和socket.io。 我负载testing这个应用程序通过旋转一些其他的,真正的大型盒子,并运行我为此写的节点应用程序,产生了使用socket.io-client包进行连接的大量进程。 我发现我可以获得大约1k并发连接到一个1gig机架空间云盒子。 我们需要支持10k和100k之间的并发连接(对于特定的事件,而不是所有的时间),尽pipe如此,我把一个负载均衡器放在前面,并在大型事件之前计算出了更多的机器。 但我已经把一个haproxy框在前面,发现有2个服务器和2K用户我是金,但有4个服务器甚至3K用户是一个斗争! 我注意到,当我的负载testing开始导致大量的断开连接节点服务器正在经历非常高的CPU使用率(在90%),我觉得很奇怪,因为当2个服务器和2K用户结束了70%,其中最快速减less。 这里是我的haproxyconfiguration的一些相关的行: mode http timeout client 86400000 timeout server 86400000 timeout connect 5000 maxconn 100000 我也把一些内核networking调整到我的haproxy和节点框的/etc/sysctl.conf中: net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 1024 65023 net.ipv4.tcp_max_syn_backlog = 10240 net.ipv4.tcp_max_tw_buckets = 400000 net.ipv4.tcp_max_orphans = 60000 net.ipv4.tcp_synack_retries = 3 net.core.somaxconn = 50000 net.core.netdev_max_backlog = 50000 net.ipv4.tcp_rmem = 8192 87380 8388608 net.ipv4.tcp_wmem = 8192 87380 […]

在EC2 VPC的NAT实例上,如何将从私有子网stream量的白名单列入S3?

我正在研究适用于AWS VPC的隐私兼容的高安全部署选项。 我正在寻找在NAT实例中从私有子网收紧出站stream量的方法。 例如,如何限制NAT后面的出站stream量,只允许调用AWS S3? 我正在计划使用由Ansible和Packer驱动的Shorewall创build自定义NAT AMI。 看来没有一个固定的S3 IP地址列表,所以按IP列出白名单。 根据协议白名单是不够的, 至less应将端点限制在AWS的API空间中。 主机名白名单肯定不会超出第一个DNS查询的第一个IP。 选项似乎是: 尝试拼凑一个IP列表。 向AWS请求一个列表。 也许我可以使用HAProxy或类似的做一个反向代理到S3,完全跳过传统的NAT。 假设私有子网内唯一需要的出站stream量是基于HTTP(S)的,那么这可能会起作用,并且可以限制S3主机名称? 比如软件包更新和NTP,可以使用位于公有子网中的临时点(实例)完成。 请让我知道如果你想进一步澄清我的需求。 你知道如何只允许来自EC2 VPC私有子网内部的S3(和依赖项)stream量吗? 谢谢你,约书亚 PS噢,如果它可以高度可用,那也会很好。 我正在计划在一个地区的三个地区的每一个“NAT”或“类似NAT”的实例。 我打算使用Autoscaling小组来保持这三个实例的存在,但也许你有另一个想法。 最初,我打算使用三个ENI,每个AZ一个,通过Corosync&Pacemaker为NAT漂浮。 我希望避免需要通过路由到ENI来防止在NAT中发生NAT故障时的路由表。 / endblabbing 相关链接: http://www.shorewall.net/4.2/FAQ.htm#faq39 没有NAT的EC2 VPC?

nprox在haproxy后面的问题

我主持一个Ajax网站(AngularJS),它的资产/部分驻留在我的静态资产服务器上运行nginx后面haproxy。 我的设置如下所示: Web -> Haproxy -> App (custom) and Static (nginx) servers 现在,不时加载特定资产(HTML部分),或者在一次或多次浏览器刷新后才开始加载(Chrome的networking工具显示“未完成”)。 我不知道这是什么原因,因为assets / partials都在同一个文件夹中,而其他的只是加载好。 这里有2个configuration,也许你可以发现一些可疑的东西? 我怎样才能有效地debugging这些问题? haproxy.cfg.j2 🙁这是一个Jinja2模板,所以不要被模板语法混淆) # requires haproxy 1.5+ global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 user haproxy group haproxy daemon defaults log global mode http maxconn 4096 # Add x-forwarded-for header option forwardfor option redispatch option […]

Tomcat 6会话复制不适用于HAProxy

我有HAProxy负载均衡器和两个Tomcat后端服务器。 HAProxyconfiguration了基于cookie的持久性,Tomcat根据文档configuration了SimpleTcpCluster。 两个Tomcat后端服务器之间的组播被启用。 但会话复制不起作用。 每当我closures服务器举行会议,用户注销。 在catalina.out中,我看到服务器正在相互通信,例如,当我取下一个后端时: 2014年5月8日上午11:00:25 org.apache.catalina.tribes.group.interceptors.TcpFailureDetector performBasicCheck信息:可疑成员,已确认死亡。[org.apache.catalina.tribes.membership.MemberImpl [tcp:// { 10,2,1,69}:5000,{10,2,1,69},5000,alive = 931801,id = { – 18 123 59 -88 -95 20 78 -34 -83 31 -43 73 -64 -71 42 -62},有效载荷= {},命令= {},域= {},]] 另外,当我采取后端: 警告:Manager [webservice#],从org.apache.catalina.tribes.membership.MemberImpl [tcp:// {10,2,1,69}:5000,{10,2,1,69})请求会话状态。 5000,alive = 672675,id = { – 18 123 59 -88 -95 20 78 -34 […]

haproxy哈希,尊重已连接的连接

我们已经configurationhaproxy 1.5,并使用基于地图的散列(默认)。 例如,我们有两个后端服务器。 服务器A和服务器B. 客户端1,2,3,4,5将进入相同的后端。 例如 客户端1,2,3根据散列连接到服务器A. 服务器A崩溃。 haproxy将它们转移到服务器B. 服务器A恢复。 客户端4,5连接到服务器A 问题是,1,2,3保持与服务器B连接,但根据更新的散列,它们应该连接到服务器A. 我们希望所有客户端1,2,3,4,5都连接到同一台服务器。 连接保持连接很长时间,所以要么他们需要强制断开连接,如果散列更改或散列应该是这样的,它承认已连接的连接。 在这种情况下我们应该使用什么样的哈希函数,或者是否还有其他configuration需要使用?

HAProxy只发送stream量到一个节点

我有一个IP 10.60.61.20的HAProxy和三个IP地址为.21,.22,.23的MariaDB节点,当然在同一个子网中。 我有MariaDB集群sync'd,他们可以读/写彼此,但是当我设置HAProxy,它只是发送stream量到10.60.61.21(第一个节点)。 即使在第一个节点上closuresmysql之后,HAProxy仍然存在连接错误,并且不会将stream量发送到其他两个节点。 有没有人见过这个? 我只是build立了4个Ubuntu 12.04服务器,其中3个用于节点,另一个是HAProxy。 这是我的HAProxy .conf文件: global log 127.0.0.1 local0 notice user haproxy group haproxy defaults log global retries 2 timeout connect 3000 timeout server 5000 timeout client 5000 listen mysql-cluster bind 0.0.0.0:3306 mode tcp option mysql-check user haproxy_check balance roundrobin server mariadb1 10.60.61.22:3306 check server mariadb2 10.60.61.21:3306 check server mariadb3 10.60.61.23:3306 […]

haproxy后面的WordPress:$ _POST被重置

所以这里是圣人: 负载均衡器(haproxy)交付给3个Web服务器和一个数据库服务器,共5台服务器,并且在Web服务器之间共享Memcache会话。 我可以确认PHPSESSIONID正在Web服务器之间共享,但是当我尝试login时, $_POST不断被重置,并且login的cookie从不设置,导致不断的redirect到login页面。 我已经在haproxy中设置了appsessionid ,而且这个工作正常,但是由于大多数用户都会login,所以它在使用负载均衡器的时候失败了,所以很可能一台服务器会比其他服务器获得更多的stream量。 有没有人遇到这个和任何想法如何解决? 还是我被迫使用粘性会话? 编辑1: 做了更多的研究,并意识到我可以在$_SESSION保存$_POST ,但可能会有一些安全问题。 我的想法是在每个页面的closures操作中将其从会话中清除。 思考? 编辑2: 这里是/etc/haproxy/haproxy.cfg global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s daemon user haproxy group haproxy # Default ciphers to use on SSL-enabled listening sockets. # For more information, see ciphers(1SSL). […]

使用Jboss EAP进行集群和使用Haproxy进行负载平衡

我正在使用HAProxy进行负载均衡,并将JBoss EAP用作应用程序服务器。 Haproxy服务器configuration为将传入请求路由到应用程序服务器。 如何将Jboss EAP和HAproxy集成到集群和负载平衡,以便在服务器上复制会话?