我正在设置一个运行Apache的Centos机器,以便在两个应用程序Web服务器之间进行负载平衡。 通常我会用F5(或其他硬件LB)来做这些事情,但是客户不想花费更多的钱,所以我把这些与虚拟机结合在一起。 我已经得到它在两台机器之间进行定期循环的工作,但是我只需要第二台服务器进行故障转移。 看到我的虚拟主机在下面:
<VirtualHost *:80> Options +FollowSymLinks Include conf/virtualhosts.conf RewriteEngine on RewriteLogLevel 9 RewriteLog /var/log/httpd/rewrite_log RewriteRule ^/?h/(\.[0-9]+)/(string/.*)$ balancer://mycluster/$2?h=$1 [P,QSA] Header add Set-Cookie "h=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_WORKER_ROUTE <Proxy balancer://mycluster/> Order deny,allow Allow from all BalancerMember http://server1:8080 route=0 BalancerMember http://server2:8080 route=1 status=+H </Proxy> ProxyPreserveHost on ProxyPass / balancer://mycluster/ stickysession=h nofailover=On ProxyPassReverse / balancer://mycluster/ ProxyPass /balancer-manager ! <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Allow from all </Location> </VirtualHost>
现在有两个问题,我遇到了问题:
我已经设置了状态= + H选项,但是当我closuresserver1上的Web服务时,它只是不断尝试将它发送给那个服务器。 这是因为我的机器上有一个cookie还想让我去那里吗? 我需要设置一个http返回值的健康检查吗? 我现在有点迷路了。 如果我拿下整个服务器,它应该工作,但那么我得下楼到服务器房间重新启动的东西:)。
我无法让balancer_manager工作。 当我到http://virtualip/balancer-manager它会将我发送到其中一个Web服务器,然后server1上的Web服务器将告诉我该链接不存在。
任何问题的帮助将是伟大的!