我使用以下configuration来负载平衡https连接,使用haproxy 1.4.8。 SSL卸载是由Apache完成的。 listen ssl_to_waf 192.168.101.54:443 mode tcp balance roundrobin option ssl-hello-chk server wafA 192.168.101.61:444 check listen ssl_from_waf 192.168.101.61:445 balance roundrobin option forwardfor server webA 192.168.101.46:80 check 对于HTTP请求这很好,请求分发到我的Apache服务器就好了。 但是对于HTTPS请求,我丢失了“forwardfor”信息。 我需要保存客户端IP地址。 如何使用HAproxy在多个SSL服务器之间进行负载均衡,使这些服务器知道客户端的IP地址?
我想通过haproxy来平衡2 apache / php服务器searchgooglesearch从1.5版本开始,haproxy支持SSL卸载,据我所知,这意味着在haproxy之前不需要任何额外的组件来处理SSL。 基本上,我遵循这篇文章http://blog.exceliance.fr/2012/09/10/how-to-get-ssl-with-haproxy-getting-rid-of-stunnel-stud-nginx-or-pound/安装haproxy 在我的configuration下面 global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 chroot /usr/share/haproxy uid 99 gid 99 daemon #debug #quiet defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 frontend ft_test mode http bind […]
我刚刚使用HAProxy来平衡我的应用程序,它当前运行五个后端应用程序实例。 我的设置是相对简单的。 我有一个使用光纤,EventMachine和瘦的Ruby应用程序尽可能保持非阻塞。 所以大多数请求会很快返回,或者至less不会阻塞应用程序服务器,所以它可以一次处理多个请求。 但是,有一些请求(例如需要访问shell命令的映像上传)可能会很慢并阻止应用程序服务器。 我所发现的是,一种简单的循环式的平衡方式在这里是没有意义的,因为可以同时处理和返回的请求在请求缓慢的情况下被快速回补。 处理这个问题的最好方法是什么? 我考虑过: 有一个频繁运行的健康检查(比方说每250毫秒)来检查服务器是否响应。 如果不是的话,假设它是“down”(很可能会阻塞一个长请求),这将导致HAProxy在它周围发送请求。 但是在这种情况下,所有5个实例都有可能被阻塞。 有一个预先定义的慢请求URL列表,指定2或3个应用程序后端只处理缓慢的请求,并将所有其他请求路由到“快速”后端。 理论上来说,快速请求永远不会被阻塞,但是这种方法似乎更加脆弱,因为我需要确保如果URL改变了,我记得更新我的HAProxyconfiguration。 我认为后一种方法可能是最好的,但是由于devops不是我的强项,我想我会检查一下在这种情况下的最佳做法。 当然,“最佳实践”可能会将所有长时间运行的请求转移到后台任务,但在这种情况下,假设我现在没有时间来处理后续任务:-)
您好我正在尝试为我的Haproxy版本1.4.22configuration自定义日志logging。 我添加时使用选项httplog和选项尽快 log format %hr\ %r\ %st\ %B\ %Tr 在听节我下面的错误 service haproxy restart [ALERT] 288/112904 (14449) : parsing [/etc/haproxy/haproxy.cfg:46] : unknown log facility '%hr %r %st %B %Tr' 在configuration文件中发现错误,用'haproxy check'检查。 我想知道我应该把指令日志格式放在我的haproxyconfiguration文件中。 任何帮助将不胜感激 。
我最近一直在努力找出在我们的环境中的performance是瓶颈的地方。 环境(每台服务器是Linux VM,8核,32 GB RAM): 负载平衡:50 Web服务器(rsync):51,52,54 DB(MySQL 5.6 master master):56,58 我build立了一个负载平衡的环境,HAProxy负载均衡,Nginx的SSL终止在..50。 HAProxy侦听端口80,并将stream量指向.. .51,52或54.它还侦听端口3306,并在.._。56和58之间引导stream量以实现数据库负载平衡。 Nginx监听端口443,并处理SSL握手,同时将实际stream量转发到同一台机器上的端口80,由HAProxy处理。 该设置以〜1000 /秒处理非SSL连接,但SSL连接以〜300 /秒处理。 我最近通过将我们的HAProxy版本升级到可以处理SSL终止的版本来改变环境。 HAProxy现在侦听端口80和端口443,在后者处理SSL握手,并将stream量转发到Web服务器:51,52和54.性能保持大致相同,但configuration更简单。 我已经看到了负载平衡器的顶部,在这两种情况下,服务器上几乎没有任何负载。 端口80或443的stream量。 如我所料,Web服务器在我的端口80testing期间受到敲击,但是在我的443testing中它们显示的负载非常小。 是否有任何你知道的事情可以做,以增加我们的SSL连接的响应时间? 任何和所有的提示或build议是受欢迎的,我想获得尽可能多的performance,我可以。 谢谢大家!
如果之前已经问过这个道歉,但我似乎无法find很多。 我们将使用HAProxy来平衡我们的MariaDB Galera集群。 我已经看到的所有文章/教程使用Keepalived(或类似的)主动/被动HAProxy设置。 有没有什么好的理由,你不应该有一个主动/主动设置? 每个HAProxy节点可以有一个固定的IP,并且都有一个浮动的IP。 在正常情况下,请求在两个HAProxy节点之间共享,如果其中一个出现故障,另一个则需要浮动IP并在两个IP下处理请求。 当另一个回来时,它的浮动IP和负载的份额又回来了。 我会很感激你的意见。 卢克
在我的scheme中,我必须根据包含的urlstring&mode=edit或&mode=create在我的服务器之间切换服务器,以平衡负载。 我的configuration是通过脚本从大约100个不同的URL / IP创build的。 我目前的方式有一个前端和两个后端是相当长的,大量的健康检查不适合我的服务器… 我怎样才能把这些东西放在一起listen而不是frontend呢? 我无法弄清楚如何在侦听中使用ACL来确定使用哪个服务器。 frontend myFrontend bind 127.0.0.1:80 bind 127.0.0.1:443 ssl crt /etc/haproxy/ssl/myFrontend/myFrontend.pem redirect scheme https if !{ ssl_fc } use_backend myBackend-edit if { url_sub &mode=edit } or { url_sub &mode=create } default_backend myBackend backend myBackend server srv1 1.1.1.1:10201 cookie srv1 ssl check server srv2 2.2.2.2:10201 cookie srv1 ssl check backup server […]
我尝试了一些东西,但仍然无法有效地旋转haproxy日志。 当日志文件跨越500 MB大小时,我需要旋转日志。 考虑到haproxy服务很大没有。 的静态TCP连接,我不能重新启动haproxy进程,虽然重新加载是可行的。 每日haproxy日志文件大小通常在我的机器上超过3 GB。 以下是日志文件大小超出限制设置的较新机器的示例: ubuntu@server:/mnt/log/haproxy$ ls -lsh total 4.3G 85M -rw-r—– 1 syslog adm 85M Jun 2 07:13 haproxy.log 2.9G -rw-r—– 1 syslog adm 2.9G Jun 2 06:37 haproxy.log.1 460M -rw-r—– 1 syslog adm 460M Jun 1 06:32 haproxy.log.2.gz 469M -rw-r—– 1 syslog adm 469M May 31 06:42 haproxy.log.3.gz 384M -rw-r—– […]
尽pipeCPU使用率很低,而且http响应非常快,但SSL响应的响应时间超过了10秒以上。
我试图在Ubuntu 14.04中使用HAProxy作为使用TPROXY的完全透明代理。 HAProxy将在第一台服务器上111.111.250.250 ,其中eth0 111.111.250.250和eth1 10.111.128.134 。 单个平衡服务器也有eth1和eth0 。 eth0是面向公众的networking接口,而eth1是两个服务器所在的专用networking。 问题:我可以直接(通过eth1 )连接到平衡服务器的端口1234,但无法通过Haproxy端口1234(通过eth0redirect到1234)到达平衡服务器。 我错过了这个configuration中的东西吗? 从/etc/haproxy/haproxy.cfg删除线source 0.0.0.0 usesrc clientip ,haproxy工作但不透明。 在HAProxy服务器上 目前的内核是3.13.0-24-generic 。 iptables v1.4.21 ,我认为它支持iptables v1.4.21 ,但不知道如何检查。 内核似乎有TPROXY支持: # grep TPROXY /boot/config-3.13.0-24-generic CONFIG_NETFILTER_XT_TARGET_TPROXY=m HAProxy编译与TPROXY支持: haproxy -vv HA-Proxy version 1.5.3 2014/07/25 Copyright 2000-2014 Willy Tarreau <[email protected]> Build options : TARGET = linux26 CPU = x86_64 CC = […]