1. 安装Apache和Tomcat,这里假定Apache2.2.3,Tomcat6.x;且Apache安装在apachehost,tomcat分别安装在tomcathost1和tomcathost2上;
2. 修改/etc/httpd/conf/httpd.conf文件,确定以下行没有被注释掉
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
3. 修改/etc/httpd/conf/httpd.conf文件,添加以下行:
ProxyRequests off <Proxy balancer://tccluster> BalancerMember http://tomcathost1:8080 loadfactor=2 route=tomcat1 max=150 smax=145 BalancerMember http://tomcathost2:8080 loadfactor=1 route=tomcat2 max=150 smax=145 Order Deny,Allow Allow from all #ProxySet lbmethod=byrequests|bytraffic|bybusyness </Proxy> <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Allow from all </Location> <Location /examples> ProxyPass balancer://tccluster/examples stickysession=JSESSIONID ProxyPassReverse balancer://tccluster/examples Order Deny,Allow Allow from all </Location>  
* 其中lbmethod配置说明:
lbmethod=byrequests 按请求次数均衡(默认)
lbmethod=bytraffic 按流量均衡
lbmethod=bybusyness 按繁忙程度均衡(总是分配给活跃请求数最少的服务器)
* 其中BalancerMember配置中route=tomcat<ID>是下面在tomcat的server.xml配置中的jvmRoute值,这样配置如果两个tomcat都是可用的情况下,同一个浏览器过来的请求会被转发到同一个tomcat上。
4. 确定apachehost和两台tomcathost可以互访,并且两个tomcat机器在一个网段内;
5. 确定两台tomcat host多播已经打开,在Linux机器上可以使用cat /proc/net/dev_mcast检查,如果文件存在基本上就是打开了;另外确定两台tomcat机器的/etc/hosts文件中包含“xxx.xxx.xxx.xxx    hostname”比如“172.17.1.101    tomcathost1”或“172.17.1.102    tomcathost2”;
6. 修改两个tomcat的conf/server.xml文件,对Engine节点分别添加jvmRoute="tomcat1"和jvmRoute="tomcat2",并添加以下内容:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"> <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> <!-- <Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/> --> <Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.5" port="45564" frequency="500" dropTime="3000"/> <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" selectorTimeout="100" maxThreads="6"/> <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> </Sender> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> </Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*/.gif;.*/.js;.*/.jpg;.*/.png;.*/.htm;.*/.html;.*/.css;.*/.txt;"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster>  

7. 创建一个web app,这里为了简单使用tomcat自带的examples web app(webapps/examples),修改其中的WEB-INF/web.xml文件,在其中<display-name>Servlet and JSP Examples</display-name>节点后添加<distributable/>表明此应用与集群服务器复制Session;
8. 在两个Tomcat的webapps/examples目录下各创建一个test.jsp文件,用来测试Cluster中两个Tomcat的Session复制,代码如下:
<html> <head> <title></title> </head> <body> <% String mydata = request.getParameter("mydata"); if (mydata != null && mydata.length() != 0) { session.setAttribute("mydata", mydata); } out.println("request.getLocalAddr(): " + request.getLocalAddr()); out.println("<br/>"); out.println("request.getLocalPort(): " + request.getLocalPort()); out.println("<br/>"); out.println("Session ID: " + session.getId()); out.println("<br/>"); out.println("mydata: " + session.getAttribute("mydata")); %> <form> <input type=text size=20 name="mydata"> <br> <input type=submit> </form> </body> </html>  

9. 启动Tomcat和Apache,访问http://apachehost/examples/,可以修改其中Session中的值,并且可以看到两个tomcat的Session中的值是一样的;
10. 访问http://apachehost/balancer-manager,可以使用此负载均衡管理页面来动态enable/disable其中的某个tomcat。

参考资料:

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

Apache2 + Tomcat6配置负载均衡相关推荐

  1. Nginx + Tomcat6配置负载均衡

    1. 安装Nginx和Tomcat,这里假定nginx-0.7.65,Tomcat6.x.(Nginx可以从http://nginx.org/en/download.html下载) 安装Nginx # ...

  2. APACHE 2.2.8+TOMCAT6.0.14配置负载均衡

    作者: jiake0504  链接:http://jiake0504.javaeye.com/blog/265000  发表时间: 2008年11月10日 声明:本文系JavaEye网站发布的原创博客 ...

  3. docker nginx 配置负载均衡

    在上篇的文章中我们介绍了docker nginx配置简单的代理 在这篇文章我们介绍docker 利用nginx配置负载均衡 所谓的负载均衡是两台服务器,或者是多台服务器上面部署项目,但是访问的方式是通 ...

  4. tenginx配置负载均衡

    tenginx配置负载均衡 一.环境介绍 二.查看tenginx的版本 三.查看默认的配置文件内容 四.tenginx的启停相关操作 1.tenginx的启动 2.tenginx的停止 3.tengi ...

  5. 从编译安装Keepalived 到 配置 负载均衡(LVS-DR)

    最近在研究服务器高可用集群 (HA)-- Keepalived 是用C写的软路由.提供负载均衡与高可用特性. 负载均衡利用IPVS技术 高可用通过VRRP协议实现 更难能的贵的是,一直到最近还在更新 ...

  6. nginx 负载均衡 404_nginx配置负载均衡

    - 负载均衡是网络基础架构的一个非常关键的组成部分,有了负载均衡,我们可以把应用服务器部署多台,避免了服务宕机,也增强了服务的性能及可用性. - 负载均衡的算法有很多 ,这里只是简单提下, - **轮 ...

  7. NGINX基于Tomcat配置负载均衡

    NGINX基于Tomcat配置负载均衡 本部署指南说明了如何使用NGINX开源和NGINX Plus在Apache Tomcat TM应用程序服务器池之间平衡HTTP和HTTPS流量.本指南中的详细说 ...

  8. nginx学习文档之二 配置负载均衡-linux配置负载均衡

    #linux配置负载均衡 linux下配置tomcat负载均衡和windows下是一样的 安装完nginx后直接修改conf下的nginx.conf文件即可 配置文件如下: #user nobody; ...

  9. nginx学习文档之二 配置负载均衡-windows配置负载均衡

    #windows配置负载均衡 nginx+tomcat负载均衡的意思大概如下图: 所有请求先经过nginx服务器,然后由nginx服务器进行转发,将请求根据配置需要分发给指定的tomcat服务器 ## ...

最新文章

  1. 三层交换机vlan间访问(第一种方式)
  2. php yii 模板引擎,模板引擎(Template Engines)
  3. mysql 5.6 ibdata1_mysql 里的 ibdata1 文件不断的增长?
  4. 2-docker 安装
  5. linux 下一条命令查出arp
  6. ZZFAFA_BilibiliMusic_DownUrl
  7. 汉字取首字母(第三节蓝桥杯决赛)
  8. [转帖]javascript做浮点数运算精确问题
  9. CSE-CIC-IDS 2018数据集下载
  10. 【计算理论】计算理论总结 ( 上下文无关文法 | 乔姆斯基范式 | 乔姆斯基范式转化步骤 | 示例 ) ★★
  11. microsoft office 文档左边导航窗格列表不见了
  12. Android平板获取唯一标识DeviceId
  13. dimm和udimm_服务器内存类型UDIMM、RDIMM和LRDIMM比较
  14. latex数学公式神器Mathpix
  15. 计算机无法打开用友通,用友通服务启动后又停止了?
  16. 优酷移动端弹幕穿人架构设计与工程实战总结
  17. vcg函数值_简单介绍几种函数信号发生器的原理图及不同功能设计
  18. 艺术留学|服装设计专业2019院校排名
  19. 信号 功率谱和频谱的区别,联系
  20. 热血传奇资源文件wzl、wzx解析

热门文章

  1. 宣传推广费用_企业如何做好网络推广,提高网络推广的转化率?
  2. Paddle下的Tensor运算以及简单回归问题
  3. IAR8.32.4 for ARM安装预注册教程
  4. 测试电子负载用于无线充电系统的功能和精度
  5. python找出图中所有闭合环_求图中的所有闭合环
  6. dijkstra 算法_最短路径问题Dijkstra算法详解
  7. UBUNTU 下查看所有的C库函数和查询 LINUX 编成必备
  8. TODO;FIXME;XXX
  9. win10 Linux子系统 交叉编译器注意事项
  10. mysql2008jar包下载_求java jdbc 连sql server2008的jar包