`
mayang_lang
  • 浏览: 20255 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache Tomcat 负载均衡 主备切换

阅读更多
环境:
apache 2.4.16
tomcat 8.0.15

第一步:
1.准备多个tomcat的实例,在这里我简单的采取了复制多个tomcat的方式
由于多个实例全跑在一台服务器上,因此需要修改三个端口号,默认端口号如下:
8005
8080
8009
按实际情况修改三份不同的端口即可。

2.修改tomcat server.xml文件
为 Engine 节点增加 jvmRoute 属性,属性值为节点名称,如: jvmRoute="node_a"
这个名称会在apache的配置文件中用到

取消每个实例 Engine 节点下的
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
的注释,此项配置用于session复制和共享

第二步:
修改apache配置,取消以下行前面的#号注释
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

修改%APACHE_HOME%\conf\extra下的httpd-vhosts.conf配置文件
ProxyRequests off  关闭正向代理
增加以下内容
<VirtualHost *:80>
    ServerAdmin sz@localhost
    ServerName localhost
    ServerAlias localhost
    ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    ProxyPassReverse / balancer://cluster/
    #ErrorLog "logs/error.log"
    #CustomLog "logs/access.log" common
</VirtualHost>

<proxy balancer://cluster>
    BalancerMember ajp://127.0.0.1:8010 loadfactor=1 route=node_a  smax=5 max=20 ttl=120 retry=300 timeout=15
    BalancerMember ajp://127.0.0.1:8011 loadfactor=1 route=node_b  smax=5 max=20 ttl=120 retry=300 timeout=15
    BalancerMember http://127.0.0.1:8080 status=+H
    ProxySet lbmethod=byrequests
</proxy>

其中 BalancerMember http://127.0.0.1:8080 status=+H 为后备节点,当负载节点全部失效时,请求会转发给后备节点

第三步:
为文件上传配置虚拟目录
修改tomcat server.xml文件,在 Host 节点下增加
<Context path="/upload" docBase="D:\web_file_root\upload"></Context>
<Context path="/export" docBase="D:\web_file_root\export"></Context>
<Context path="/download" docBase="D:\web_file_root\download"></Context>

增加虚拟路径映射后,相应的http://xx.xx.xx.xx/upload...请求会被映射到配置的物理路径中,在项目中配置文件上传的物理路径为对应的路径后,即可在集群环境中正常使用文件上传及下载

备注:如果希望tomcat的各个实例间可以session共享,需在web项目的web.xml配置文件中增加<distributable/>,此处未进行详细测试;session共享要求所有session对象实现Serializable


由于时间原因,本次配置成功后未对所有配置项进行深入的了解,现将所有配置项记录下来,以后有时间还需对每个配置项作相应了解,以掌握相关的原理及性能调优的方式。

参考资料:
http://www.cnblogs.com/fly_binbin/p/3881207.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics