Articles of haproxy

Haproxy需要每2小时重新启动一次

我已经设置了两个专用的haproxy服务器来分散三个应用程序服务器上的负载。 我已经build立了常规的http 80平衡,也是一个特殊的使用websockets。 它工作了大约2个小时,但之后,它变得非常缓慢,页面加载大约30秒。 当我重新启动haproxy这是很好的。 下面是我的conf。 任何想法可能造成这个? global user haproxy group haproxy defaults mode http timeout connect 5s timeout client 5s timeout server 60s stats enable stats auth aa:bb frontend proxy # listen on 80 bind 0.0.0.0:80 # allow for many connections, with long timeout maxconn 200000 # total maximum connections, check ulimit as well […]

haproxy + nginx:httpsredirect到http后面的斜杠

我有一个设置,HTTP(S)stream量从HAProxy到nginx。 HAProxy nginx HTTP —–> :80 —-> :9080 HTTPS —-> :443 —-> :9443 我遇到了从https到http的尾随斜杠导致的隐式redirect问题,如下所示: $ curl -k -I https://www.example.com/subdir HTTP/1.1 301 Moved Permanently Server: nginx/1.2.4 Date: Thu, 04 Oct 2012 12:52:39 GMT Content-Type: text/html Content-Length: 184 Location: http://www.example.com/subdir/ 显然,HAProxy是作为SSL解包程序工作的,而nginx只能看到http请求。 我已经尝试在HAProxyconfiguration上设置X-Forwarded-Proto来https,但是它什么都不做。 我的nginx设置如下: server { listen 127.0.0.1:9443; server_name www.example.com; port_in_redirect off; root /var/www/example; index index.html index.htm; } […]

取消一半的服务器与滚动重新启动的想法?

我们正在设置HAProxy来平衡我们的应用程序(在IIS上运行的ASP.NET MVC 3)。 我们希望我们的stream程不需要定期维护以进行部署。 我试图找出正确的方法来做一个“跷跷板”的方法,只在一次为新的请求提供一个版本的应用程序。 以下是我到目前为止所做的: 通过重新加载configuration从HAProxy删除前半部分的服务器: $ sed -i 's/web01.*/& disabled/' /etc/haproxy/haproxy.cfg $ sed -i 's/web02.*/& disabled/' /etc/haproxy/haproxy.cfg $ /etc/init.d/haproxy reload 更新每个向下实例的应用程序,并用curl戳它们来加热它们。 把上半场带回去,把下半场拿下来: $ sed -i 's/\(web01.*\) disabled$/\1/' /etc/haproxy/haproxy.cfg $ sed -i 's/\(web02.*\) disabled$/\1/' /etc/haproxy/haproxy.cfg $ sed -i 's/web03.*/& disabled/' /etc/haproxy/haproxy.cfg $ sed -i 's/web04.*/& disabled/' /etc/haproxy/haproxy.cfg $ /etc/init.d/haproxy reload 下半场重复第2步。 带回下半场 : $ […]

Haproxy在服务器故障事件

我有一个HAproxy服务器(前端)和多个Web服务器(后端)的设置。 是否可以configurationHAproxy,以便在Web服务器出现故障时执行脚本?

HAProxy:通过基本身份validation凭据进行路由

我有许多来自单个IP的请求,这些请求是以基本身份validation格式在HTTP头中提供的凭据。 即使来源相同,凭据在请求中也会频繁变化。 这是一个从内存caching中获得很多好处的API。 然而,为了使这个caching起作用,我需要能够将具有一组特定凭证的请求路由到同一台机器上。 这意味着我需要提出一个路由解决scheme,以某种方式将特定凭证“粘”到单台计算机上一段时间(30分钟),同时还以循环方式分发尚未附加的凭证。 这是可能的HAProxy?

HAProxy – HAProxy会自动重新加载列表文件吗?

我有我想用来帮助确定正确的行动采取与HAProxy的IP地址列表的文本文件。 所以如果HAProxy像这样加载白名单。 acl whitelist src -f /path/to/ips.list 如果ips.list被修改,HAProxy会自动重新加载它 – 所以我可以dynamic修改IP列表?

HAProxy但仍然是单点故障

我正在使用HAProxy在3个物理节点上build立一个testing集群 – Maria Galera集群。 它的工作,但我已经做了一些初学者的错误,我似乎无法解决 – 所以希望有人可以投下专家的眼睛,帮助我吗?! 我有3个物理节点Node1:10.1.1.120 节点2:10.1.1.121 节点3:10.1.1.124 使用HAProxy 10.1.1.113的虚拟IP 正在运行,当我通过虚拟IP查询时,我得到… $ mysql -uroot -pPassword -P 3306 -h 10.1.1.113 -e "select @@hostname; show processlist;" +————+ | @@hostname | +————+ | node2 | +————+ +—-+————-+————-+——+———+——+——————–+——————+———-+ | Id | User | Host | db | Command | Time | State | Info | Progress | […]

标杆加载balaners

我正在努力衡量两个不同的负载平衡器(英镑和haproxy),但不确定如何做到这一点。 可以使用httperf,但是由于速率非常高,实际上使负载平衡器崩溃在技术上可能是困难的。 我怎么能考虑可以观察到的其他variables,这可能表明哪个variables在更加紧张的情况下更强大

错误2006(HY000):MySQL服务器已经走了…(HaProxy / Galera)

我在多主设置中设置了3个MariaDB服务器的集群,工作正常。 我为HaProxy添加了第四台服务器来进行负载平衡和轮询,这样我们可以有一点冗余,这也是可行的,除了1个问题。 我login到运行以下查询的HaProxy服务器上的MySQL客户端: show variables like 'server_id'; 我得到的结果,但如果我等待5秒或更多的时间,再次运行查询,我得到以下错误: ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect… Connection id: 52 Current database: *** NONE *** 之后,我得到的结果与不同的server_id,这表明负载平衡正在工作。 这是造成的问题是,当我尝试从我的Spring / Java应用程序连接,我可以运行查询短时间内的连接下降。 我想我是否可以在HaProxy服务器上解决这个问题,这将解决我遇到的其他问题。 编辑:添加HAPROXY.CFG global log 127.0.0.1 local0 notice chroot /var/lib/haproxy pidfile /var/run/haproxy.pid user haproxy group haproxy maxconn 4096 daemon defaults log global retries […]

根据请求头添加haproxy响应头

我有一个Haproxy实例,使用http-request set-header Host头重写为内部http-request set-header 。 http-request set-header Host internal.example 不过,我仍然希望后端可以访问原始的Host头。 我认为X-Forwarded-Host是一个很好的select,但是我正在努力想办法做到这一点。 我正在使用这个工作: capture request header Host len 64 http-request set-header X-Forwarded-Host %hrl 但当然这是一个巨大的黑客 – 不会超过64个字符的工作,如果我需要捕获另一个头,将无法正常工作。 有没有更好的办法?