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 节点下的
的注释,此项配置用于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 关闭正向代理
增加以下内容
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
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
其中 BalancerMember http://127.0.0.1:8080 status=+H 为后备节点,当负载节点全部失效时,请求会转发给后备节点
第三步:
为文件上传配置虚拟目录
修改tomcat server.xml文件,在 Host 节点下增加
增加虚拟路径映射后,相应的http://xx.xx.xx.xx/upload...请求会被映射到配置的物理路径中,在项目中配置文件上传的物理路径为对应的路径后,即可在集群环境中正常使用文件上传及下载
备注:如果希望tomcat的各个实例间可以session共享,需在web项目的web.xml配置文件中增加
由于时间原因,本次配置成功后未对所有配置项进行深入的了解,现将所有配置项记录下来,以后有时间还需对每个配置项作相应了解,以掌握相关的原理及性能调优的方式。
参考资料:
http://www.cnblogs.com/fly_binbin/p/3881207.html