Articles of haproxy

如何监视HAProxy?

我们有两个HAProxy服务器使用keapalived进行故障转移。 一旦一个人倒下,另一个人无缝接pipe。 我知道可以configurationHAProxy来发送一个电子邮件来提醒一个系统pipe理员,但是在HAProxy统计信息页面中显示所有被监视的服务的健康状态也是有帮助的。 ( hostname:1936/?stats )。 这可能吗? 目前我们甚至不知道哪个服务器正在服务于统计页面。

日志格式由于没有日志地址,所以前端'http-in'被忽略

我从couchdb项目使用以下haproxy.cfg : global maxconn 512 spread-checks 5 defaults mode http log global monitor-uri /_haproxy_health_check option log-health-checks option httplog balance roundrobin option forwardfor option redispatch retries 4 option http-server-close timeout client 150000 timeout server 3600000 timeout connect 500 stats enable stats scope . stats uri /_stats frontend http-in # This requires HAProxy 1.5.x # bind *:$HAPROXY_PORT […]

HAProxy不logging所有请求

我在Ubuntu 14.04上安装了一个HAProxy,在Ubuntu 14.04和Apache2上运行一个单独的后端服务器。 执行请求时,并不是所有的请求都被logging下来 即使在debugging模式下运行HAProxy,也不会显示terminal上的所有请求。 我有一个包含图像的index.html。 当使用Google Chrome请求页面时,我可以在督察中看到总共需要3个文件(index.html,header.gif和favicon.ico)。 然而,HAProxy只会loggingindex.html的实际请求,如果我非常快速地重新载入页面,它甚至不会logging所有index.html的请求。 我曾尝试使用socat进行debugging,但没有通过这种方式logging错误。 我曾尝试将日志格式设置为tcplog,但这也没有帮助,并没有logging所有的请求。 我究竟做错了什么? rsyslogdconfiguration: $ ModLoad imudp $ UDPServerAddress 127.0.0.1 $ UDPServerRun 514 local0。* – / var / log / haproxy / haproxy.log &〜 HAProxyconfiguration: 全球 日志127.0.0.1 local0 日志发送主机名 守护进程 maxconn 256 统计socket / tmp / haproxy 默认 日志全球 超时连接5000ms 超时客户端50000ms 超时服务器50000ms 前端http-in 模式http 选项httplog #绑定到所有IP的端口9200 […]

HAProxy MySQL检查失败永久和意外

我正在运行HAProxy spred 3 mysql的galera节点之间的负载。 不幸的是,HAProxy表明node2永远处于脱机状态,而其他节点工作得很好。 configuration看起来很好,用户名,密码,端口应该是一切。 我无法find它的原因。 这是HAProxyconfiguration的相关部分: listen mysql-galera-cluster bind 10.0.0.10:3306 mode tcp option mysql-check user haproxy_check balance roundrobin source 10.0.0.10 server db1 10.0.0.101:3307 check server db2 10.0.0.102:3307 check server db3 10.0.0.103:3307 check 在db3上,我在mysql.log里面input了以下内容: 151111 17:48:06 1518 Connect [email protected] on 1518 Quit 在db2上没有这样的条目。 但是日志工作,如果我尝试手动login( mysql -h 10.0.0.102:3307 -u root -p ),我得到: 151111 17:30:48 342 […]

haproxy有时会出现SSL错误

我正在尝试为多个主机设置一个用于SSL卸载的haproxy。 这工作完美的configuration: # Example configuration for a possible web application. See the # full configuration options online. # # http://haproxy.1wt.eu/download/1.4/doc/configuration.txt # #——————————————————————— #——————————————————————— # Global settings #——————————————————————— global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done […]

在使服务器退出维护模式之前,如何使HAProxy等待成功的健康检查

我正在使用HAProxy套接字通信将我的后端置于维护模式,然后通过此命令将Web服务器closures以进行维护: echo "disable server cluster-01/app-01-4" | sudo socat stdio /tmp/haproxy.sock 问题是,当我通过socket enable命令再次标记后端时,HAProxy在向后端发送请求之前不会等待任何成功的健康检查。 因此,在HAProxy意识到服务器仍然closures之前,我们最终失去了一些请求,并将其退出了线路。 有没有办法告诉HAProxy在启用之前等待后端健康? 还是必须让我的启动脚本足够聪明来监视服务器本身,然后再告诉HaProxy启用后端? 这显然不够理想。 我目前正在这样做: echo "enable server cluster-01/app-01-4" | sudo socat stdio /tmp/haproxy.sock 有什么类似的东西可以用来代替吗? echo "enable server cluster-01/app-01-4 WAIT_FOR_SUCCESSFUL_HEALTH_CHECK" | sudo socat stdio /tmp/haproxy.sock 编辑:我正在使用HAProxy版本1.5倍

相当于haproxy的apache LimitRequestBody

最近我们将我们的http负载均衡器从apache迁移到haproxy(http模式),出于安全原因,我们在apacheconfiguration中使用LimitRequestBody来控制请求大小 有没有haproxy的等价configuration? 先谢谢了

HAproxy ssl重新encryption和http头修改

我想在我的https服务器之前使用我的Haproxy 1.6.5作为Https负载均衡器,但我坚持了一个误解的问题。 我想要这样的行为:haproxy是可用的https://example.com但在它后面有几个https服务器与自签名证书,我不能切换öhttp。 所以我configuration我的tcp前端为此 frontend tcp_in mode tcp option tcplog bind *:443 ssl crt /etc/ssl/certs/server.bundle.pem maxconn 50000 tcp-request inspect-delay 5s tcp-request content accept if { req.ssl_hello_type 1 } acl example_acl req.ssl_sni -i example.com use_backend special_example if example_acl 在此之后,我想发送我的stream量到后端之一,但重点是我想从后端请求https:\ eimA.customer.local和https:\ eimB.customer.local fro,backend2我的猜测是我需要在请求中重写主机头(可能它不会在tcp模式下工作,那么我怎样才能修改configuration来做到这一点) 我的后端configuration是: backend special_eims mode tcp option tcplog balance roundrobin stick-table type binary len 32 […]

添加一个服务器haproxy与初始状态

每当我更新haproxyconfiguration以添加节点时,haproxy默认将其添加到UP状态。 在下一次运行状况检查时,它会被标记为closures。 有没有办法在最初添加一个处于DOWN或MAINT状态的节点?

虚拟机中的Haproxy吞吐量性能

我是HAProxy的新手,但是我能够实现function,尽pipe我没有获得预期的吞吐量。 我的设置包括一个5节点的存储集群(运行Riak CS,S3风格存储)和另一个运行HroRroxy的虚拟机。 所有的虚拟机都使用VirtualBox,每个虚拟机都在专用的机器上。 HAProxy虚拟机在Windows 7上,而其他虚拟机在Windows 10.这是所有在同一个千兆networking上,我testing了1.4和1.5 HAProxy。 我有一个脚本(python + boto)下载而不保存到磁盘,反复100 MB的文件,我认为这应该归结为一个简单的获取请求,我本地运行该脚本3次增加的负载。 如果我把它们全部指向HAProxy的IP地址,我可以下载大约4-500 Mbps的数据,而如果我不使用HAProxy并且指向一个单独的IP地址,我可以达到900 Mbps以上。 在做这个testing的时候,看起来HAProxy正在最大化一个核心,变成瓶颈。 对于单个运行的脚本,我认为这是一个单一的连接,它正在吃HAProxy上的核心CPU的20-40%,这似乎是可疑的? 这听起来像HAProxy可以处理高吞吐量,所以我试图debugging我可能设置错误的地方,无论是在Ubuntu或HAProxyconfiguration文件。 在configuration中,我看到使用nbproc 3最小改进,负载在3个进程间绝对不平衡,因为一个仍然是最大的。 有关这个设置的任何事情,如虚拟机,跳出潜在的红旗? 我的haproxyconfiguration是不是罪魁祸首? 或者我的一般的Ubuntu设置? 另外值得一提的是,这是HAProxy的一个好的或坏的用例吗? 编辑 我有一些进一步的挖掘工作,但我目前的感觉是,这是VM特定的,可能在以太网驱动程序(e1000)? 我能够将HAProxy安装程序移动到物理机器(而不是VM),并且在单个内核上,它几乎没有使用我以前的testing用例注册任何CPU使用情况… 完整的configuration global #log 127.0.0.1 local0 #log 127.0.0.1 local1 notice maxconn 256000 spread-checks 5 daemon nbproc 4 cpu-map 1 2 cpu-map 2 3 cpu-map 3 4 cpu-map 4 5 […]