Articles of haproxy

HAproxy不适用于多个站点

我试图使用单个HAproxy Loadbalancer为多个网站,但只有一个网站正在为我cp_nodes工作,当我尝试访问第二个网站,它只redirect到第一个网站。 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 user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000 #Application Setup frontend http_front bind *:80 #redirect scheme https if […]

HAProxy性能问题

我正在尝试排查生产环境中的零星性能问题。 我们有一个http前端指向8台服务器的后端。 在HAProxy http日志中,有数百个成功的请求(〜0.1%的请求),具有不寻常的时间。 这些请求时序徘徊在1000ms,3000ms,7000ms,15000ms和31000ms左右。 时间主要来自Tc列,这是build立到后端连接所需的时间(也有一些请求在Tw时间中需要63000ms,并有1次重试)。 纠正我,如果我错了,但我相信这些时间是在TCP重传指数退避使用的模式:2 ^ n – 1还有什么可以解释这些延迟? 我们有一个相当高的超时连接configuration10分钟 ,我想改为5秒 。 我关心的是那些具有很长Tc时间的奇怪请求会发生什么。 请求将返回一个错误,或将HAProxy使用不同的连接,也许到不同的服务器(我们有redispatch打开)? 我们只能在我们的生产环境中看到这个问题,到目前为止,我们在我们的testing环境中创build一个能够复制问题的负载testing失败。 生产环境使用http健康检查进行configuration,每隔3秒重试3次。 实际上,我们每天有几十次失败的健康状况检查,但是它们每次在第一次重试时都会恢复,2秒后,服务器永远不会被标记。 更新5/24/2017:我们减less超时连接到5秒,这有很大的帮助。 但是,有些请求会遇到超时,并最终因重试而成功(1次重试时为〜5000ms,2次重试时为〜10000ms)。 仍然困惑为什么这是发生在局域网上。 有趣的是,我们有多个前端:一些在Linux上运行,而另一些在Windows(IIS)上运行。 与IIS服务器的前端是唯一遇到此问题的。 有没有人遇到与HAProxy与IIS通信的问题?

HAProxy子域名和pathredirect

我是StackExchange的新手,我试图find一些configuration问题的帮助。 我需要为HAProxy创build一个configuration,这将允许我dynamic代理一个Tomcat应用程序上下文path到一个子域。 子域/path不能被硬编码,应该设置为一个variables。 我已经看了整个网站的其他build议,但没有一个涵盖了这个特定的问题。 到目前为止,我已经从各种现有的build议中整合了这个configuration。 这是我需要的。 用户请求 – > http://site1.domain.com/path redirect到https 然后,HAProxy使用URL http://<ip>:8080/site1/path向后端池发出请求 当tomcat应用程序返回到资产的链接时,他们将有一个path需要redirect。 网站返回https://site1.example.com/site1/image.jpg 如果存在,请从path中删除第一个site1。 https://site1.example.com/image.jpg 我已经使用这个网站的例子和其他指南得到了这个,但我在这方面的知识的极限。 我不知道如何删除path中的site1。 # Frontend Definition frontend tomcat_contexts bind *:80 bind *:443 ssl crt /etc/haproxy/cert.pem acl http ssl_fc,not http-request redirect scheme https if http reqadd X-Forwarded-Proto:\ https default_backend cluster # Backend Definition backend cluster balance roundrobin cookie JSESSIONID prefix […]

haproxy和tomcat间歇挂起

我试图在Solaris x86机器上的tomcat前运行haproxy,但是我得到间歇性故障。 看似随机的时间间隔,请求只是挂起,直到haproxy超时连接。 我想也许这是我的应用程序,但我已经能够重现与tomcatpipe理器应用程序,直接打到tomcat没有任何问题。 用curl反复打击会在10-15次尝试中导致错误 curl -ikL http://admin:admin@<my server>:81/manager/status haproxy在端口81上运行,在端口7000上运行tomcat。haproxy向客户端返回504网关超时,并将其放入日志文件中: Sep 7 21:39:53 localhost haproxy[16887]: xxx.xxx.xxx.xxx:65168 [07/Sep/2009:21:39:23.005] http_proxy http_proxy/tomcat7000 5/0/0/-1/30014 504 194 – – sHNN 0/0/0/0/0 0/0 "GET /manager/status HTTP/1.1" Tomcat什么也没有显示,在日志中没有错误,也没有显示这个请求是否已经到达tomcat服务器。 请求计数不会递增,pipe理器应用程序只在一个线程上显示活动,提供pipe理器应用程序。 这里是我的haproxy和tomcat连接器设置,我一直在玩很多尝试追查问题,所以他们可能不是理想的,但他们肯定不会导致这个错误。 server.xml中 <Connector port="7000" protocol="HTTP/1.1" enableLookups="false" maxKeepAliveRequests="1" connectionLinger="10" /> haproxyconfiguration global log loghost local0 chroot /var/haproxy listen http_proxy :81 mode http log global […]

Nginx,HAproxy,Unicorn,Rails和Node设置

我们的应用程序目前只是一个“常规”的networking应用程序,没有喜欢streamHTTP或Websockets的花哨的东西。 它主要是一个Rails应用程序,由less数(20台机器上的20台) Unicorn工作服务器处理,由负责均衡的古老的nginx服务器代理。 过去一年来,这一切都非常顺利,现在每天在任何时候都可以提供400到800个请求 。 我们很快就会发布两个新的API,这两个API都是由一个Node应用程序提供的:一个是websocket,另一个是长轮询HTTP 。 (喜欢Twitterstream媒体API,HTTP连接永远不会结束)。 他们都使用节点上的同一个端口,由于节点应用是无状态的,所以我们当然可以部署其中的一些来处理stream量。 应用程序(节点)现在部署在5个实例中,现在正在侦听同一主机上的5个不同的“专用”端口。 我们需要在它们之前放置一些负载均衡,但也有一些能够处理套接字(websocket或HTTPstream式传输)的东西,这些套接字可以保持数天。 那么问题是:什么? 我在某处读到HAProxy比Nginx做得更好。 你有什么build议?

HAProxy前端

我有一个非常懂技术的客户,他们希望我为他们build立一个haproxy实例。 我没有麻烦这样做,并添加了初始configuration,但是他们在技术上相当好,并享受自己改变基本的configuration设置(用于添加新的网站,域名,更改IP地址等)的能力。 haproxy是很容易搞砸手动编辑configuration文件(不是一切?他们目前所做的一切都是基于Windows的,所以不是那么容易搞砸),所以我想知道是否有人知道任何haproxy前端 – 结束? 我发现一个产品Snapt-UI看起来很有希望,而且我绝对没有问题,为此,我想查看是否还有其他产品。

带有HAProxy后面的乘客的Nginx会导致503错误

在过去的一个月中,我不得不学习了很多关于服务器configuration,集成,AWS等方面的知识。我从来没有这样做过。 我得到了一切,并为我的应用程序运行良好(主要感谢http://github.com/wr0ngway/rubber创业板和#rubberec2 IRC频道的帮助)。 但是,我遇到了一个神秘的(对我)的问题。 堆 我在HAProxy后面运行Nginx + Passenger。 到目前为止,只有一个Nginx + Passenger主机正在使用,所以HAProxy实际上并没有太多的function,但我们将来会增加更多的应用服务器。 问题 我被卡住偶尔的503错误,在一天中的某些时间(在更高的负载?)变得烦人。 这些错误都发生在静态资产和路由URL上。 我已经确定这是HAProxy引发他们,因为页面和它的头是相同的/etc/haproxy/errors/503.http。 我认为nginx并不关心它接收多less请求,它可以处理所有这些请求,因为它有自己的排队,并且乘客正确分配东西。 那么为什么HAProxy声称没有服务器可以处理一些请求? 我的HAProxyconfiguration global log 127.0.0.1 local0 warning maxconn 1024 defaults log global mode http retries 3 balance roundrobin option abortonclose option redispatch option httplog contimeout 4000 clitimeout 150000 srvtimeout 30000 listen passenger_proxy xxxx:x option forwardfor server web01 web01:xxxx maxconn […]

HAProxy停止接受连接

我一直使用HAProxy来平衡我的appservers几个月没有问题。 最近一些stream量峰值导致我设置maxconn参数来限制连接到我的后端服务器。 它工作了好几个小时,然后似乎停止接受任何连接。 我看过我的系统资源图,loadavg和RAM的使用似乎都在控制之下,在冻结之前没有大的峰值。 编辑:Loadavg似乎从冻结前大约从0.13到1.0秒。 这个系统有4个内核,我只是将HAProxy作为一个进程运行 – 当我在冻结之后在htop中查看它时,CPU被locking在100%。 # HA-Proxy version 1.4.16 2011/08/04 global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log 127.0.0.1 local1 debug #log loghost local0 info maxconn 4096 #chroot /usr/share/haproxy user haproxy group haproxy daemon #debug #quiet defaults log global mode http option httplog option dontlognull retries 3 option forwardfor option redispatch […]

HaProxy和Windowsvalidation

我可以让HaProxy将Windows身份validation凭据转发到IIS上吗? 我search了一天,找不到更多的信息。

在chroot jail中运行的HAProxy只是logging启动的消息

我已经configuration我的HAProxy服务器运行在一个chroot监狱logging消息到syslog套接字。 我的问题是目前正在logging的唯一消息是haproxy启动时。 May 26 10:42:37 dev haproxy[13986]: Proxy my_listener started. 我创build了一个名为haproxy的用户和组,然后执行以下操作: su -l haproxy mkdir jail mkdir -m 2750 jail/dev chmod aw jail 从我的haproxyconfiguration相关的线是: global chroot /home/haproxy/jail daemon group haproxy node haproxy log /home/haproxy/jail/dev/log local0 defaults log global option tcplog syslogd正在使用-a /home/haproxy/jail/dev/log选项启动,并且-a /home/haproxy/jail/dev/log添加到了/etc/syslog.conf local0.* -/var/log/haproxy.log ls -la在监狱/ dev给 drwxrws— 2 haproxy haproxy 4096 May 26 […]