用apache与tomcat实现服务器web应用集群
Apache版本:apache_2.0.59
Tomcat版本:tomcat-5.5.28
JDK 版本:jdk_1.5
JK版本:jk_.24
第一步:下载mod_jk-apache-2.2.4.so,(下载地址是: Apache 的官方网站: http://www.apache.com )重命名为mod_jk.dll,并将其复制到%Apache_Home%apache2/modules/下。
第二步:修改Apache的配置文件%Apache_Home%apahce2/conf/httpd.conf.
打开%Apache_Home%apache2/conf/httpd.conf.并加入如下内容
LoadModule jk_module modules/mod_jk-apache-2.2.4.so
JkWorkersFile conf/workers.properties
JkMount /* controller
第三步:在%Apache_Home%apahce2/conf下新建文件workers.properties
打开该文件并加入如下内容
worker.list=controller,tomcat1,tomcat2
# 集群中的节点列表
worker.tomcat1.host=localhost
# 节点的ip地址
worker.tomcat1.port=8009
# 节点的端口
worker.tomcat1.type=ajp13
# 节点与Apache之间通信采用的协议
worker.tomcat1.lbfactor=1
# 节点所负载的工作量 此系数大则优先
worker.tomcat2.host=localhost
worker.tomcat2.port=9009
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
# 节点所负载的工作量 此系数大则优先
worker.controller.type=lb
# 控制节点的属性设置,设为lb即为控制节点
worker.controller.balanced_workers=tomcat1,tomcat2
# 控制节点管辖的工作节点
worker.controller.sticky_session=1
# 是否启用粘性会话,1表示启用,0表示否
第四步:部署两个tomcat服务器,修改他们的端口防止冲突。
第五步:修改这两个服务器的server.xml文件
1、 按关键字找到<Cluster>项使其生效(即删除注释符号)。
2、 使任意一个server.xml文件中的tcpListenPort="4002"。目的是防止冲突,默认是tcpListenPort="4001"
3、 按关键字找到<Engine name="Catalina" defaultHost="localhost" debug="0" >
加入jvmRoute="tomcat1"成为<Engine name="Catalina" defaultHost="localhost" debug="0" jvmRoute="tomcat1">同理另一个改为<Engine name="Catalina" defaultHost="localhost" debug="0" jvmRoute="tomcat2">
其实jvmRoute属性可以任意,只要不重名即可。
4、 修改端口号: (如果在同一服务器上架设两个tomcat时)
一个为默认的端口号,如:
<Server port="8005" ……
<Connector port="8080" ……
redirectPort="8443" ……...
<Connector port="8009" ……..
另一个Tomcat 则修改对应的端口,为:
<Server port="9005" ……
<Connector port="9080" ……
redirectPort="9443" ……...
<Connector port="9009" ……..
5、 保存退出。
第六步:部署一个测试应用。
在tomcat的webapp目录下新建一个任意名字的文件夹,比如名为test。再在其中新建一个WEB-INF文件夹。在WEB-INF中新建文件web.xml。打开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>
保存。
然后再到test文件夹下新建文件index.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.print("<b>Session 列表</b>");
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="index.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>
保存。 配置完成。先启动tomcat,然后启动Apache。运行测试应用