apache配置balance
今天尝试了一下用apache做负载均衡,后台应用服务器用jetty跑一个很简单的war。
网上有很多apache+tomcat做集群的文章介绍,蛮有帮助的。
应用访问的地址:
http://localhost:6080/test/test.jsp
http://localhost:9080/test/test.jsp
修改apache配置文件httpd.conf
去掉注释符号#:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
增加内容:
ProxyRequests Off
#均衡模式
<Proxy balancer://mycluster>
BalancerMember http://localhost:9080/test loadfactor=1
BalancerMember http://localhost:6080/test loadfactor=1
ProxySet lbmethod=byrequests
</Proxy>
#热备模式
#<Proxy balancer://mycluster>
#BalancerMember http://localhost:9080/test
#BalancerMember http://localhost:6080/test status=+H
#ProxySet lbmethod=bytraffic
#</Proxy>
ProxyPass /test balancer://mycluster
#lbmethod=byrequests 按照请求次数均衡(默认)
#lbmethod=bytraffic 按照流量均衡
#lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
# 负载均衡监控
<Location /balancer-manager>
SetHandler balancer-manager
order Deny,Allow
Deny from all
Allow from localhost
</Location>
apache不能对session进行复制,如果配成上面loadfactor=1,每次刷新页面,都会访问不同的应用。session的复制应该是依靠后面的应用服务器实现。
应该有办法修改配置,让一个页面每次请求都发往同一个应用服务器。