茅屋为秋风 发表于 2018-12-8 07:26:15

apache+tomcat集群实现负载均衡

  本文环境:OS:CentOS 5.3 x86_64
  Apache 一台(Apache/2.2.3,本文是rpm 安装的)ip 为:192.168.10.251
  Tomcat 两台(apache-tomcat-6.0.20.tar.gz)
  Tomcat-1 IP 为:192.168.10.252
  Tomcat-2 IP 为:192.168.10.253
  1. 首先分别安装Apache,jdk,tomcat 并且可以正常运行(略)
  2. 配置Apache
  # cd /etc/httpd/conf
  # vi httpd.conf
  (1) 启动代理模块(去掉如下模块前面的注释)
  LoadModule proxy_module modules/mod_proxy.so
  LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
  LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
  LoadModule proxy_http_module modules/mod_proxy_http.so
  LoadModule proxy_connect_module modules/mod_proxy_connect.so
  LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
  (2) 在文件的最后面加入如下代理负载均衡信息
  ProxyRequests Off
  
  BalancerMember ajp://192.168.10.252:8009/b loadfactor=1 route=jvm1
  BalancerMember ajp://192.168.10.253:8009/a loadfactor=1 route=jvm2
  
  解释:其中192.168.10.252:8009/b 和192.168.10.253:8009/a 分别为两个tomcat
  的项目,jvm1 和jvm2 是标识,要和下文的tomcat 配置文件保持一致,其中端
  8009 为ajp 协议的Apache 和tomact 的通讯端口
  (3) 配置虚拟主机
  
  ServerAdmin www.test.com
  ProxyPass / balancer://cluster/ stickysession=jsessionid
  nofailover=On
  ProxyPa***everse / balancer://cluster/
  
  3. 重启Apache 服务
  # /etc/init.d/httpd restart
  4. Tomcat 的配置
  (1) 分别把事先准备好的两个war 包丢到/usr/local/tomcat/webapps/目录中,这样当
  tomcat 启动的时候就会自动解包,war 包的名称分别为b.war 和a.war 分别属于
  192.168.10.252 和192.168.10.253 即访问方式为:http://192.168.10.252:8080/b 和
  http://192.168.10.253:8080/a,内容分别为bbbbbbbbbb 和aaaaaaaaaaa(此处是为了区
  分)
  (2) 配置主配置文件
  # cd /usr/local/tomcat/conf/
  # vi server.xml
  找到如下一行
  
  注意这里的 jvm1 一定要和Apache 的代理配置相同即192.168.10.253 此处应该改为
  jvm2
  (3) 重新启动tomcat
  5. 现在就可以验证结果了, 在测试机的host 文件里指定www.test.com 对应为
  192.168.10.251,然后在浏览器里访问:http:// www.test.com 会发现返回的是两个tomcat
  的项目页面而且是轮询,为了更直观的查看可以用如下命令
  # curl www.test.com
  
  
  
  
  My JSP 'index.jsp' starting page
  
  
  
  
  
  

roxettewu 发表于 2019-2-22 09:01:33

感谢楼主的分享!
页: [1]
查看完整版本: apache+tomcat集群实现负载均衡