我一直致力于探索为JBoss开发的专业应用程序构build一个非常失败的configuration的方法。 我有一个固定的硬件configuration(服务器已经被选中,他们意味着每秒处理数以千计的连接),更多的软件方面的自由。 我最初的目的是使用VRRP ,通过专用的L3交换机或通过keepalived , haproxy通过故障转移,负载均衡configuration提供对Apache的访问。 (参考: http://www.formilux.org/archives/haproxy/1003/3259.html 如何设置HAProxy故障转移? ) 这是我第一次在做家庭作业的时候需要部署JBoss,我读到mod_jk本质上有一个loadbalancer本身,可以在一个Apache实例和多个JBoss实例之间工作。 我的问题是:如果我configurationhttp负载平衡HAProxy和AJP / JBoss负载平衡与mod_jk我会得到任何好处吗? 它会以任何方式搞砸负载平衡甚至是应用服务器的function吗? 以下是预期configuration的图表: 我们仍然处于devise阶段,所以这就是为什么没有更多的细节。 如果需要的话,我可以提供它们,但是我相信这是关于部署JBoss + Apache时不同负载平衡机制工作的一般性问题。 我也没有考虑数据库,这是我们接下来要解决的问题。
我的理解是,有两个服务器后端通过HAProxy进行负载平衡,如果发生故障,HAProxy应该能够将所有stream量导向另一个。 我有两个带有roundrobin和httpchk的加载web服务器,但是当我得到503 – Service unavailable HAProxy 503 – Service unavailable消息。 也许我的configuration有问题吗? backend app timeout server 50000ms mode http balance roundrobin option httpchk server ap1 ap1:8000 maxconn 4000 #ap1 is hostname server ap2 ap2:8000 maxconn 4000 #ap2 is hostname
我想了解HAProxy中的负载平衡如何工作,以便我可以做一些容量规划。 那么HAProxy负载平衡的工作方式是哪一种呢? schemeA:来自客户端的请求被发送到HAProxy,Haproxy将请求转发到可用的Web服务器,在这种情况下Webserver1。 webserver1响应请求并将请求的页面直接返回到客户端浏览器。 schemeB:客户端的请求被发送到HAProxy,Haproxy将请求转发到可用的Web服务器,在这种情况下Webserver2。 Webserver2通过将页面发送回HAProxy和HAProxy将请求传递回客户端的浏览器来响应请求。 另外,这个设置可以工作吗? HAPRoxy中面向Internet的NIC使用公共IP,HAProxy的面向内部的NIC使用专用IP,webserver1和webserver2也使用公共IP。 他们都使用私有IP。 最后一个问题。 除了循环赛以外,HAProxy还支持哪种负载平衡scheme? 我试图完成的是,当客户端第一次连接到webserver1时,我想保持该客户端的连接,直到会话过期或终止。 任何关于如何完成的build议? 请指教? 非常感谢您的build议。
当sudo service haproxy restart出现以下消息: [WARNING] 145/113237 (6021) : config : 'option httplog' not usable with proxy 'mysql' (needs 'mode http'). Falling back to 'option tcplog'. 我尝试在configuration的某些地方放置option tcplog ,但消息不停止。 在这里我的configuration: global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull contimeout 5000 […]
我试图通过https连接使用haproxy设置SSH。 我目前正在寻找一种SSHD从haproxy获取源IP的方法,类似于阅读X-Forwarded-For或X-Real-IP标头。 客户端configuration; ~$ cat ~/.stunnel/stunnel.conf pid= client=yes foreground=yes [ssh] accept=4444 connect=ssh.example.com:443 客户输出; ~$ ssh -v -p 4444 user@localhost OpenSSH_6.6.1, OpenSSL 1.0.1i 6 Aug 2014 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Connecting to localhost [::1] port 4444. debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH_6.6.1* compat 0x04000000 ….. debug1: SSH2_MSG_KEXINIT sent Bad packet length 1349676916. Disconnecting: Packet […]
我有一个haproxy服务器,被限制为60k的连接。 我认为这是由于短暂的端口限制,因为我有1:1的连接映射,所以我所有的传出连接去同一台服务器。 以下是我认为可以帮助我:我可以添加一个新的networking接口(eth1)与一个新的IP。 然后,我会添加一个重复的后端服务器定义,我相信新的目标将获得一个新的临时端口限制,只要它使用不同的接口。 这应该让我的连接数量增长。 但是,我似乎无法find一种方法来强制haproxy使用一个后端服务器定义eth0和eth1另一个。 是否有可能做到这一点,还是有其他方法来实现我所需要的? 有问题的系统运行Debian和haproxy 1.4.8(在Debian上是默认的)。
我正在研究用HAProxyreplace专有的软件负载平衡器。 作为这项调查的一部分,我试图在负载下testingHAProxy。 虽然我的HAProxyconfiguration在单用户testing时工作正常,但只要我加载它,网站的速度开始急剧下降,不久(约100个模拟用户)我们的负载testing工具开始报告故障。 这是非常直接的configuration,只有值得注意的一点是我们正在使用HAProxy 1.5.4以及OpenSSL和PCRE支持编译和使用。 我们也有一些ACL可以在URL上匹配,尽pipe这个前端并没有用在这个负载testing中。 这是在CentOS 6.5机器上运行。 负载testing中前端/后端组合的(消毒)configuration以及全局和默认值: global daemon tune.ssl.default-dh-param 2048 maxconn 100000 maxsessrate 100000 log /dev/log local6 defaults mode http option forwardfor option http-server-close timeout client 61s timeout server 61s timeout connect 13s log global option httplog frontend stats bind xxx.xxx.xxx.xxx:80 default_backend stats-backend backend stats-backend stats enable server stats 127.0.0.1:80 frontend portal-frontend […]
我有一个HAProxy的问题,这是我的haproxy.cfg下面的一个片段, acl url_a path_beg /a acl dom_eye hdr_dom(host) -i www.mydomin.com use_backend eye1 if dom_eye use_backend eye2 if dom_eye url_a 当我访问www.mydomin.com/a时 ,它使用eye2 当我访问www.mydomin.com/a/b时 ,它使用eye1 但我希望所有的url都以/ eye2开头。 而且,我发现当像下面那样切换use_backend的顺序时, acl url_a path_beg /a acl dom_eye hdr_dom(host) -i www.mydomin.com use_backend eye2 if dom_eye url_a use_backend eye1 if dom_eye 它为我工作。 但是我不明白Haproxy的“匹配规则”,并且找不到任何来自google的解释。 任何想法呢?
我有一些haproxy原始日志文件,其中每行看起来像这样: Feb 6 12:14:14 localhost \ haproxy[14389]: 10.0.1.2:33317 [06/Feb/2009:12:14:14.655] http-in \ static/srv1 10/0/30/69/109 200 2750 – – —- 1/1/1/1/0 0/0 {1wt.eu} \ {} "GET /index.html HTTP/1.1" 问题 :如何将haproxy原始日志文件转换为CSV?
据我所知 ,Tq时间是TCP客户端握手结束和最后一个HTTP头被读取的时间之间的时间。 haxproxy 1.4手册将Tq时间描述为: Tq:获取客户端请求的总时间(仅限HTTP模式)。 这是从客户端连接被接受到代理收到最后一个HTTP头之间的时间。 值“-1”表示头(空行)的结尾从未被看见。 当客户过早或超时closures时会发生这种情况。 资料来源 : http : //www.haproxy.org/download/1.4/doc/configuration.txt 我想了解Tq是如何logging持续连接的。 我的理解是否正确,如下图所示? Tq timer start | v [CON] [REQ1: HTTP HEADERS|HTTP DATA] … [RESP1] [REQ2: HTTP HEADERS|HTTP DATA] … ^ ^ ^ | | | +– REQ1 Tq time —+ | | | +——————– REQ 2 Tq time —————————+ 也就是说,当haproxy正在处理持续连接时,Tq时间将随同一连接上的每个请求而增加?