第四步:现在是核心配置了
在安装好的Apache中找到httpd.conf文件,如图:
在其最下面添加如下一行信息:
在conf文件夹中新建mod_jk.conf文件夹
配置如下:
找到modules文件夹,将下载好的mod_jk-1.2.31-httpd-2.2.3.so文件直接拷贝进去;这里面有好多的xxx.so;如图所示:
在conf文件夹中新建workers.properties文件夹,配置如下:
注:我这里就用了两个Tomcat做示范,当然你用多个Tomcat也没问题,相应的在本机上的port端口不一致,就行,远程不用管,但是要把host配置成远程IP地址,就行了!
下面我们就开始配置Tomcat里面的server.xml文件了,里面有三个端口,分别是Server,Connector,Connector AJP,这三个端口号都要不一致,在这里就不叙述了下面可以下载server.xml文件例子。
里面两个核心的配置如下:
注:一个是配置负载均衡,一个是配置session复制,保证整个服务器session值是一致的
配置到这里:基本完成,下面,我们就编写web项目进行测试:
在新建的web项目中,需要在web.xml文件中添加这条信息,distributable元素来告诉servlet/JSP容器,编写的应用将在分布式Web容器中部署!
ok,编写一个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>
现在将web应用部署到Tomcat1,Tomcat2中去,记住是加载之后的class文件,然后分别启动tomcat1,Tomcat2,启动顺序无所谓,最后启动Apache
在浏览器上输入:http://127.0.0.1/test/test2.jsp如下图:刷新,后台访问,Tomcat1,Tomcat2
我们发现sessionID是没有变化的,后台Tomcat在进行访问切换,
我们继续输入数据看Tomcat打印的效果:
由此可见,我们的集群最核心的session复制做成功了,保证多个tomcat的session是一致的,基本完成集群配置,可以使用了,这也是我摸索而来,希望没有误导大家。
另外:为什么打印出来Server Info : null 也就是IP地址?这一点也是我郁闷的地方,有朋友看出问题,也可以留言,咱们一起交流!
附,为保证页面的图片大小统一,图片经过处理,所以分辨率有些不正常!呵呵....
文件下载地址:
博客地址:http://1936625305.blog.51cto.com/6410597/1406268
联系客服