因工作需要做了一个简单的负载均衡(其实最后就用成了一个类似热备份的作用),现在做一个简单的总结。
一:准备工作
下载好Apache 和tomcat ,将tomcat赋值两份,改好端口号防止端口冲突。
二:Apache 配置文件
conf中的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
Include conf/extra/httpd-vhosts.conf
将以上四个文件的注释取消。其中第一个是提供代理服务功能的,第二个是负载均衡功能,第三个是让代理服务器支持HTTP协议的,第四个配置负载均衡的。
conf/extra下的httpd-vhosts.conf文件:
添加以下:
< VirtualHost *:80>
ServerName 127.0.0.1
ServerAlias localhost
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
ErrorLog "logs/proxyTest-error.log"
CustomLog "logs/lbtest-access.log" common
< /VirtualHost>
此段代码的含义为监听80端口,proxypass 指定的是分发器,以及session复制。此处的分发器名字cluster要与后面配置的分发器名字一致。
然后在httpd.conf中添加以下分发器:
ProxyRequests Off
< proxy balancer://cluster>
BalancerMember http://127.0.0.1:8080 loadfactor=1
BalancerMember http://127.0.0.1:8090 loadfactor=1
< /proxy>
loadfactor可以是1到100 ,此处用的是按权重分配均衡策略。
如果改为以下:
BalancerMember http://127.0.0.1:8011
BalancerMember http://127.0.0.1:8022 status=+H
则代表正常情况下会使用8011的tomcat,如果8011挂了,才会使用8022同时会继续定时扫描8011,一旦发现8011正常了,就会继续切换到8011上。(热备份功能)。
因为采用的是session复制的方式,因此需要以下三四步。
三:webx.ml
在web.xml的倒数第二行增加 <distributable/>
< distributable/>
< /web-app>
四:tomcat
去掉tomcat中service.xml中<Cluster> <\Cluster> 的注释符。
当然也可以自己配置cluster中的相关信息。
--注:本人水平有限,如有问题或错误欢迎指正。--
共同学习,写下你的评论
评论加载中...
作者其他优质文章