Apache+Tomcat集群配置_第1页
Apache+Tomcat集群配置_第2页
Apache+Tomcat集群配置_第3页
Apache+Tomcat集群配置_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Apache + Tomcat 集群配置一、 环境说明Windows XPapache_2.0.59-win32-x86-no_ssl.msi /mod_jk-apache-2.0.59.so /download-connectors.cgiapache-tomcat-5.5.23.zip /download-55.cgi我的程序分别安装到D:webserverApache GroupApache2D:webserverTomcatClustertomcat1

2、D:webserverTomcatClustertomcat2Apache安装完后,在右下角状态栏中可以看到 Apache Service Monitor 可以控制Apache的状态。 验证Apache是否安装成功,可以访问http:/localhost 如果能看到Apache的预制页面,说明安装成功,如果不行,可以访问http:/localhost:8080 试试(可能因为IIS已经使用了80端口, 我的就是8080, 可以修改Apache的配置文件来修改)二、 负载均衡找到Apache安装目录下conf目录中的httpd.conf文件。在文件最后添加一句:include "D:w

3、ebserverApache GroupApache2confmod_jk.conf"接着在conf目录中新建文件mod_jk.conf并添加下面的内容:#加载mod_jk ModuleLoadModule jk_module modules/mod_jk-apache-2.0.59.so#指定 perties文件路径JkWorkersFile conf/perties#指定哪些请求交给tomcat处理,"controller"为在pertise里指定的负载分配控制器名JkMount /*.jsp

4、controller在conf目录下新建perties文件并添加如下内容:#serverworker.list = controller#=tomcat1=worker.tomcat1.port=11009worker.tomcat1.host=localhostworker.tomcat1.type=ajp13worker.tomcat1.lbfactor = 1#=tomcat2=worker.tomcat2.port=12009worker.tomcat2.host=localhostworker.tomcat2.type=ajp13worker.tomcat2.l

5、bfactor = 1#=controller,负载均衡控制器=worker.controller.type=lbworker.controller.balanced_workers=tomcat1,tomcat2worker.controller.sticky_session=1(解释一下AJP13是 Apache JServ Protocol version 1.3)将mod_jk-apache-2.0.59.so 复制到Apache的modules目录中。接下来配置2个Tomcat打开tomcat1conf server.xml将Server port 改为11005<Server

6、 port="11005" shutdown="SHUTDOWN">将Define Connector port改为11080<Connector port="11080" maxHttpHeaderSize="8192"将AJP13 Connector port改为11009<Connector port="11009" enableLookups="false" redirectPort="8443" protocol="A

7、JP/1.3" />打开tomcat2confserver.xml将Server port 改为12005<Server port="12005" shutdown="SHUTDOWN">将Define Connector port改为12080<Connector port="12080" maxHttpHeaderSize="8192"将AJP13 Connector port改为12009<Connector port="12009" enableL

8、ookups="false" redirectPort="8443" protocol="AJP/1.3" />好了,现在建立一个测试程序分别在两个Tomcat的webapps中建立test目录,并新建test.jsp文件,内容如下:<%System.out.println("=");%>启动apache, tomcat1, tomcat2访问http:/localhost:8080/test/test.jsp (或者 http:/localhost/test/test.jsp)不断刷新页面,可以

9、在两个Tomcat的控制台中看到,交替输出"=", 这样就实现了负载均衡。三、 集群配置集群除了负载均衡,另一个主要功能是Session Replication。打开tomcat1conf server.xml将<Cluster>部分的注释去掉。再打开tomcat2conf server.xml将<Cluster>部分的注释也去掉,并将<Cluster>中<Receiver>的tcpListenPort的值改为4002。以避免与Tomcat1冲突。添加一个新的测试程序test2.jsp<% page contentTyp

10、e="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>");

11、%><% out.println("<br> ID " + session.getId()+"<br>"); / 如果有新的 Session 属性设置 String dataName = request.getParameter("dataName"); if (dataName != null && dataName.length() > 0) String dataValue = request.getParameter("dataValue"); se

12、ssion.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).toStr

13、ing(); 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=

14、20 name="dataValue"> <br> <input type=submit> </form></body></html>分别在2个tomcat的webappstest中新建WEB-INF目录,在WEB-INF中添加web.xml内容如下:<web-app xmlns=" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation=" version="2.4

15、"> <display-name>TomcatDemo</display-name> <distributable/></web-app>主要是添加<distributable/>,distributable元素用来告诉servlet容器,程序将部署在分布式Web容器中。重新启动tomcat1和tomcat2. 访问http:/localhost:8080/test/test2.jsp (或http:/localhost/test/test2.jsp)随意添加key-value, 可以看到两个tomcat交替显示ses

16、sion中的值,各个tomcat的session是同步的。再来修改tomcat1confserver.xml,找到<Engine name="Catalina" defaultHost="localhost">为其添加jvmRoute属性,值为apache的perties中配置的tomcat名字。<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">同样修改tom

17、cat2confserver.xml的相同部分<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">jvmRoute是tomcat路由标示,由此区分两台tomcat主机。一次会话,就有一个sessionID,这个sessionID后面会跟上jvmRoute设置的值,这样一次会话,就只会让一个tomcat处理。重新启动tomcat1, tomcat2访问http:/localhost:8080/test/test2.jsp 可以看到session.getId()的值在原session id后面多了jvmRoute的值。ID 46A5843FF4A1E0A84338225AC02F6430.tomcat1随意添加key-value,可以看到session信息只在tomcat1中输出。再打开一个浏览器,并访问http:/localhost:8080/test/test2.jsp 其session id可能变为ID 11478E5BE5FE388E4845205B4133A30F.tomcat2其值也只会在tomcat2中输出。现在把tomcat1关闭,再次刷新访问tomcat1的那个浏览

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论