Tomcat+Apache+mod_JK实现集群配置/负载均衡

配置Apache

官方下载地址:http://httpd.apache.org/download.cgi#apache20

CSDN下载地址:

Apache安装方法不赘述,网上一搜一大把,能够访问http://localhost/则说明安装成功

安装配置Tomcat

官方下载地址:http://tomcat.apache.org/download-70.cgi

CSDN下载地址:

在我的机器上Tomcat安装路径如下:

C:\Program Files\Apache Software Foundation\Tomcat 7.0

在eclipse中点击window->Show View->Server


在server选项卡中新建三个server,分别起名为Server-1/Server-2/Server-3方法如下:



JK

官方下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

选择合适的版本下载,这里我们使用tomcat-connectors-1.2.37-windows-i386-httpd-2.0.x.zip


下面开始配置过程

修改Apache配置

  • 修改http.conf

我的Apache安装在D:\Program Files\Apache Group\Apache2,在该目录下的conf目录下的httpd.conf,在文件的最后添加一行:

include "D:\Program Files\Apache Group\Apache2\conf\mod_jk.conf"

  • 新建mod_jk.conf文件,并且在该文件中写入如下内容:

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers.properties

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名

JkMount /*.jsp controller

  • 将下载的JK插件mod_jk.so复制到Apache安装目录下的modules目录下。
  • 新建并且编辑workers.properties文件,内容如下:

#server
worker.list = controller
#========tomcat1========
worker.tomcat1.port=9080
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1
#========tomcat2========
worker.tomcat2.port=9000
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
#========tomcat3========
worker.tomcat3.port=9070
worker.tomcat3.host=localhost
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor = 1
 
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1


配置Tomcat

这里可以配置任意多个Tomcat,此处配置了3Tomat服务器.

修改每个Tomcat对应的server.xml

Server-1:


类似地:

Server-2:


Server-3:



建立测试项目工程名为Test,工程目录如下:


  • 在web.xml文件中添加  <distributable/>
  • 在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="test2.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个服务器,然后分别启动Apache3Tocmat服务器,这些Tomcat启动顺序随意,然后打开http://localhost/test/test.jsp

点击刷新页面(F5),多次刷新页面的sessionID看是同一个ID,说明session是复制成功了。




多次刷新页面的sessionID看是同一个ID,说明session是复制成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值