ITPub博客

首页 > 大数据 > Hadoop > 易迈云主机Windows环境配置Apache2.2+Tomcat6.0

易迈云主机Windows环境配置Apache2.2+Tomcat6.0

Hadoop 作者:wokaosm 时间:2013-06-15 11:10:00 0 删除 编辑

 

如果在一台机器上进行多个Tomcat的负载均衡,最好下载解压版.

本人测试环境是在一个台物理机一台虚拟机上进行.

环境:

物理机(192.168.1.136):apache+tomcat

虚拟机(192.168.1.126):tomcat

apache2.2配置:

1.要先下载tomcat和apache的一个连接器mod_jk-1.2.28-httpd-2.2.3.so(其它版本似乎有问题,用不上,所以我用的这个版本,直接去apache的官网上就可以下载),将该文件放入%apache安装路径%/modules目录下.

2.在conf目录下编辑httpd.conf文件,直接在该文件末尾加上 include
"conf/mod_jk.conf"
表示将要引用另一个配置文件(不一定叫mod_jk.conf),也可以将3步中配置文件的信息直接写到httpd.conf中

3.在conf文件夹创建mod_jk.conf文件,写入以下信息:

#加载mod_jk Module

LoadModule jk_module
modules/mod_jk-1.2.28-httpd-2.2.3.so

#指定 workers.properties文件路径

JkWorkersFile conf/workers.properties

#指定日志文件

JkLogFile logs/mod_jk.log

#指定日志级别

JkLogLevel info

#日志记录的格式

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

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

JkMount /* loadbalancer #注意这里的loadbalancer
这是个自定义名称,见5步

#JkMount /*.do loadbalancer

4.在log目录下创建空文件mod_jk.log.

5.在conf目录下创建workers.properties,写入如下信息:

worker.list = tomcatV2,tomcatV4,loadbalancer

#server 列表

#========tomcatV2========

#ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.tomcatV2.port=8009

#tomcat的主机地址,如不为本机,请填写ip地址,这里也可以写192.168.1.136

worker.tomcatV2.host=localhost

worker.tomcatV2.type=ajp13

#server的加权比重,值越高,分得的请求越多

worker.tomcatV2.lbfactor = 100

worker.tomcatV2.redirect=tomcatV4

#========tomcatV4========

#ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.tomcatV4.port=8009

#tomcat的主机地址,如不为本机,请填写ip地址

worker.tomcatV4.host=192.168.1.126

worker.tomcatV4.type=ajp13

#server的加权比重,值越高,分得的请求越多

worker.tomcatV4.lbfactor = 1

#本tomcat因故障不能接受请求,则转移到tomcatV2

worker.tomcatV4.redirect=tomcatV2

#========loadbalancer,负载均衡控制器========

worker.loadbalancer.type=lb

#指定分担请求的tomcat

worker.loadbalancer.balanced_workers=tomcatV2,tomcatV4

worker.loadbalancer.sticky_session=1

说明:tomcatV2,tomcatV4分别对应192.168.136和192.168.126上的tomcat,这一定要与两个tomcat中配置的名称一致,见下文.

tomcat6.0配置(以192.168.1.136的tomcat为例):

1.打开%tomcat安装目录%/conf目录,编辑server.xml,找到节点,默认是defaultHost="localhost">修改为jvmRoute="tomcatV2">即加入这个唯一的路由名称,192.168.1.126中的tomcat中的配置为tomcatV4.

(至此,负载均衡配置完成.以下是tomcat集群.可以每个tomcat中放入项目(项目文件见附录),进行测试:开启所有tomcat(这里都用8080端口),开启apache(默认是80端口),输入地址192.168.1.136/testCluster,注意这里没有输入8080,表示通过apache(我的apache和tomcatV2同放在192.168.1.136上)访问的测试项目,现在观察两个tomcat的控制台信息,由于访问量小,所以基本只有一个tomcat才在处理.
现在停止掉有反应的那个tomcat,依然访问上述地址,会看到另一个tomcat有了反应,说明在一台tomcat出了故障的时候,其它tomcat会接手其工作,进行处理.)

2.找到节点,默认是<!--/>-->修改为:

className="org.apache.catalina.ha.tcp.SimpleTcpCluster"

channelSendOptions="8">

className="org.apache.catalina.ha.session.DeltaManager"

expireSessionsOnShutdown="false"

notifyListenersOnReplication="true"/>

className="org.apache.catalina.tribes.group.GroupChannel">

className="org.apache.catalina.tribes.membership.McastService"

address="228.0.0.4"

port="45564"

frequency="500"

dropTime="3000"/>

className="org.apache.catalina.tribes.transport.nio.NioReceiver"

address="auto"

port="4000"

autoBind="100"

selectorTimeout="5000"

maxThreads="6"/>

className="org.apache.catalina.tribes.transport.ReplicationTransmitter">

className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>

className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>

className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>

className="org.apache.catalina.ha.tcp.ReplicationValve"

filter=""/>

className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

className="org.apache.catalina.ha.deploy.FarmWarDeployer"

tempDir="/tmp/war-temp/"

deployDir="/tmp/war-deploy/"

watchDir="/tmp/war-listen/"

watchEnabled="false"/>

className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>

className="org.apache.catalina.ha.session.ClusterSessionListener"/>

由于apache和tomcat版本在更新,以上信息也有变动,贴别是一些类所在的包有变动,网上以前有人贴出的这个节点的配置就由于包的更改,导致tomcat无法启动,所以最好在要配置的tomcat版本的帮助文件中找到左侧Cluster配置帮助,直接粘贴其中的配置例子就可以了,如需更详细配置,则查看Cluster下的各个节点说明.

(如果是在同一机器上安装多个tomcat进行配置则还要修改port="8009" protocol="AJP/1.3" redirectPort="8443" />中的port端口,以保证每个tomcat
的这个值都不一样.在同一机器上配置的例子网上比较多,可搜索查阅)

3.修改testCluster项目的web.xml为附录中所示.

(至此,集群配置完成.在停掉一个tomcat的情况下,session中的信息依然存在于另一个tomcat,而没有丢失,且能看到这时候返回的信息来自于哪个tomcat)

附录:

在每个tomcat的webapps下都要建立这个测试项目testCluster,在其下建立index.jsp:

<%@ page contentType="text/html; charset=utf-8"
%>

<%@ page import="java.util.*" %>

Cluster App <br>Test

Server Info:

<%

out.println(request.getLocalAddr() + " : " +
request.getLocalPort()+"
");%>

<%

out.println("
ID " +
session.getId()+"
");

// Session

String dataName =
request.getParameter("dataName");

if (dataName != null && dataName.length()
> 0) {

String dataValue =
request.getParameter("dataValue");

session.setAttribute(dataName, dataValue);

}

out.print("Session");

Enumeration e = session.getAttributeNames();

while (e.hasMoreElements()) {

String name = (String)e.nextElement();

String value =
session.getAttribute(name).toString();

out.println( name + " = " +
value+"
");

System.out.println( name + " = " + value);

}

%>

method="POST">

:name="dataName">


?:name="dataValue">


建立WEB-INF目录及其下的web.xml,写入:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

version="2.5">

TestCluster

补充:在集群环境中的所有PO一定要 implements Serializable

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23289379/viewspace-1111676/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-02-03