我正在尝试为几个few服务器设置一个负载均衡器。我在apache服务器上使用centos5.6(服务器版本: Apache/2.2.3)。我有一个客户端生成器,它生成大约200个线程,并试图通过负载平衡器浏览网页。为此,我使用了apache mod_proxy_balancer。这是我的设计:
<IfModule mod_proxy_balancer.c>
<Proxy balancer://xx.xx.xx.xx>
BalancerMember yy.yy.yy.yy loadfactor=1
BalancerMember zz.zz.zz.zz loadfactor=1
</Proxy>
<Location />
ProxyPass balancer://xx.xx.xx.xx/
</Location>
</IfModule>启动之后,几分钟后,我开始在客户端看到503个错误,apache错误日志如下:
[Mon Aug 22 10:19:09 2011] [error] (110)Connection timed out: proxy: HTTP: attempt to connect to yy.yy.yy.yy:80 failed
[Mon Aug 22 10:19:09 2011] [error] ap_proxy_connect_backend disabling worker for (yy.yy.yy.yy)
[Mon Aug 22 10:19:10 2011] [error] proxy: BALANCER: (balancer://xx.xx.xx.xx). All workers are in error state我将httpd.conf中的超时时间更改为1200,我仍然遇到同样的问题。我可以理解,存在超时,它将ip标记为处于错误状态,并在特定时间后重试连接(按照文档的60秒)。它连接并继续良好地工作了几分钟,这个过程在一个循环中进行。我想知道如何解决这个问题,并了解导致超时的原因。如果我将客户端直接连接到一个后端服务器,它就能正常工作。因此,我想负载均衡器会造成瓶颈。任何能帮助我理解或解决这个问题的信息都是非常感谢的。谢谢!
发布于 2011-08-24 16:09:34
我通常在AJP和JBoss应用服务器上这样做,但我已经将其配置为如下所示:
<Proxy balancer://ajpcluster>
BalancerMember ajp://test.local.host:8109
BalancerMember ajp://test.local.host:8209
</Proxy>
<Location /jconsole >
ProxyPass balancer://ajpcluster/jconsole stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse balancer://ajpcluster/jconsole
</Location>发布于 2019-06-04 00:30:35
也许您需要在mod_proxy_balancer服务器的防火墙上列出带有BalancerMember的服务器的IP,通过它连接到节点?
https://serverfault.com/questions/304561
复制相似问题