apache + tomcat集群

一、软件下载
  在http://projects.apache.org/indexes/quick.html上找到Apache Tomcat和Apache Http Server工程并下载相应软件。
  软件版本:
    Apache Tomcat 6.0.33 zip版的
    Tomcat Connector 1.2,有很多版本,选择和Apache Http Server相匹配的。
    Apache Http Server 2.2.21 (released 2011-09-13)
二、软件安装1、Apache Http Server
  直接运行msi文件安装即可,安装完成并启动后,能访问http://localhost则安装成功。
  *安装Apache Http Server后确认是否有其他服务(IIS)占用80端口。
2、tomcat
  直接解压,重命名为tomcat1,然后再拷贝一份命名为tomcat2。
3、解压下载的Tomcat Connector,将mod_jk.so拷贝到Apache Http Server安装路径的modules目录/下。
三、配置Apache Http Server
1、修改conf/httpd.conf
  在文件末尾增肌一行:include conf/mod_jk.conf
2、在conf/目录下创建mod_jk.conf,内容如下
#加载mod_jk Module
LoadModule jk_module modules/mod_jk.so
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount /*.jsp controller
JkMount /*.do controller

3、在conf/目录下创建workers.properties文件,内容如下:
worker.list = controller,jvm1,jvm2  #server 列表
#========tomcat1========
worker.jvm1.port=8009         #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.jvm1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.jvm1.type=ajp13
worker.jvm1.lbfactor = 1   #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.jvm2.port=9009       #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.jvm2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.jvm2.type=ajp13
worker.jvm2.lbfactor = 1   #server的加权比重,值越高,分得的请求越多

#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balance_workers=jvm1,jvm2   #指定分担请求的tomcat
worker.controller.sticky_session=1


四、配置tomcat
1、放开cluster注释
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
2、修改Engine,增加jvmRoute属性,jvmRoute的值和workers.properties中的works保持一致
tomcat1配置:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">  
tomcat2配置:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">  
3、如果tomcat1和tomcat2在同一台机器上,还需要修改tomcat2的端口,防止冲突
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
*AJP/1.3的端口修改后,workers.properties中的端口也需要相应调整。

五、测试
在tomcat1和tomcat2下的webapps创建测试工程test,目录结构如下:
webapps
  |——WEB-INF
  |      |_web.xml
  |_test.jsp
1、web.xml内容:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
       <display-name>TomcatDemo</display-name>
       <distributable/>
</web-app>

2、test.jsp内容
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");
%>
<%
  out.println("<br> ID " + session.getId()+"<br>");
  // 如果有新的 Session 属性设置
  String dataName = request.getParameter("dataName");
  if (dataName != null && dataName.length() > 0) {
     String dataValue = request.getParameter("dataValue");
     session.setAttribute(dataName, dataValue);
  }
  out.println("<b>Session 列表</b><br>");
  System.out.println("============================");
  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
     String name = (String)e.nextElement();
     String value = session.getAttribute(name).toString();
     out.println( name + " = " + value+"<br>");
     System.out.println( name + " = " + value);
   }
%>
  <form action="test.jsp" method="POST">
    名称:<input type=text size=20 name="dataName">
     <br>
    值:<input type=text size=20 name="dataValue">
     <br>
    <input type=submit>
   </form>
</body>
</html>
3、访问http://localhost/test/test.jsp

不停刷新,界面上显示的ID项目为:xxxxxxxxxxxxx.jvm1或者xxxxxxxxxxxxx.jvm2;xxxxxxx部分内容不变,只有jvm1和jvm2轮换出现,说明session复制成功。
  在名称、值中输入内容,点击按钮提交;重复几次操作。所有输入的内容,每次都能在界面上展示,说明session已经共享,每个集群成员对于同一访问均有相同的session,而且session的内容也复制了。


ps:
1、日志
  初次配置完成后,没有实现负载均衡,查看apache/logs/mod_jk.log发现警告日志:
  [Fri Nov 11 14:51:15.296 2011] [5640:5644] [warn] jk_map_validate_property::jk_map.c (411): The attribute 'worker.controller.balanced_workers' is deprecated - please check the documentation for the correct replacement.
  查参考资料发现tomcat-connectors-1.2.32中,该配置项改为了balance_workers
2、参考文档
http://tomcat.apache.org/connectors-doc/reference/workers.html
http://tomcat.apache.org/connectors-doc/reference/apache.html
\tomcat\webapps\docs\cluster-howto.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值