1 下载tomcat和apache
2 Tomcat集群
将tomcat解压两份:
/home/fanng/Public/Server/apache-tomcat-6.0.14-A
/home/fanng/Public/Server/apache-tomcat-6.0.14-B
(1) 打开“apache-tomcat-6.0.14-A”文件夹下“ conf ”文件夹下的“ server.xml ”文件以及“apache-tomcat-6.0.14-B”文件夹下“ conf ”文件夹下的“ server.xml ”文件
a
(2) 找到 server.xml 配置文件中的“ Server ”配置项目,并进行修改。
<server port="8005" shutdown="SHUTDOWN">
<server port="10005" shutdown="SHUTDOWN">
<server port="20005" shutdown="SHUTDOWN">
说明:第一行为两个 Tomcat 修改前的情况,第二行为 A Tomcat 修改后的情况,第三行为 B Tomcat 修改后的情况。
(3) 找到 server.xml 配置文件中的相应“ Connector ”配置项目,并进行修改。
* 修改前内容如下:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<connector port="8009" protocol="AJP/1.3" redirectport="8443">
A 中修改后内容如下:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<connector port=" 10009 " protocol="AJP/1.3" redirectport=" 10043 ">
B 中修改后内容如下:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<connector port=" 20009 " protocol="AJP/1.3" redirectport=" 10043 ">
提示:此步骤目的是修改 AJP Connector 端口。
(4)找到 server.xml 配置文件中的另一个相应“ Connector ”配置项目,并进行修改。
* 修改前内容如下:
<connector port="8080" protocol="HTTP/1.1" connectiontimeout="20000" redirectport="8443">
A 中修改后内容如下:
<connector port=" 10001 " protocol="HTTP/1.1" connectiontimeout="20000" redirectport=" 10043 ">
B 中修改后内容如下:
<connector port=" 20001 " protocol="HTTP/1.1" connectiontimeout="20000" redirectport=" 20043 ">
提示:此步骤目的是修改 HTTP Connector 端口,其中的“ 10001 ”与“ 20001 ”是未来通过浏览器访问集群中各个 Tomcat 实例的 HTTP 端口。
(5) 通过修改 Engine 配置选项,配置集群中每个 Tomcat 实例的名称。
* 修改前内容如下:
<!-- You should set jvmRoute to support load-balancing via AJP ie : <engine name = "Standalone" defaulthost = "localhost" jvmroute = "jvm1"><br />-->
<engine name="Catalina" defaulthost="localhost">
A 中修改后内容如下:
<engine name="Standalone" defaulthost="localhost" jvmroute=" Tomcat1 ">
<!-- You should set jvmRoute to support load-balancing via AJP ie : <engine name = "Catalina" defaulthost = "localhost"><br />-->
B 中修改后内容如下:
<engine name="Standalone" defaulthost="localhost" jvmroute=" Tomcat2 ">
<!-- You should set jvmRoute to support load-balancing via AJP ie : <engine name = "Catalina" defaulthost = "localhost"><br />-->
(6) 修改配置文件中的 Cluster 配置项目,对集群的各项参数进行设置。
* 修改前内容如下:
<cluster classname="org.apache.catalina.ha.tcp.SimpleTcpCluster">
A 中修改后内容如下:
<cluster classname="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelsendoptions="8">
<manager classname="org.apache.catalina.ha.session.DeltaManager" expiresessionsonshutdown="false" notifylistenersonreplication="true">
<channel classname="org.apache.catalina.tribes.group.GroupChannel">
<membership classname="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" droptime="3000">
<receiver classname="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" autobind="100" selectortimeout="5000" maxthreads="6">
<sender classname="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<transport classname="org.apache.catalina.tribes.transport.nio.PooledParallelSender">
</transport>
<interceptor classname="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector">
<interceptor classname="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor">
</interceptor>
<valve classname="org.apache.catalina.ha.tcp.ReplicationValve" filter="">
<valve classname="org.apache.catalina.ha.session.JvmRouteBinderValve">
<deployer classname="org.apache.catalina.ha.deploy.FarmWarDeployer" tempdir="/tmp/war-temp/" deploydir="/tmp/war-deploy/" watchdir="/tmp/war-listen/" watchenabled="false">
<clusterlistener classname="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener">
<clusterlistener classname="org.apache.catalina.ha.session.ClusterSessionListener">
</clusterlistener>
B 中修改后内容如下:
<cluster classname="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelsendoptions="8">
<manager classname="org.apache.catalina.ha.session.DeltaManager" expiresessionsonshutdown="false" notifylistenersonreplication="true">
<channel classname="org.apache.catalina.tribes.group.GroupChannel">
<membership classname="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" droptime="3000">
<receiver classname="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" autobind="100" selectortimeout="5000" maxthreads="6">
<sender classname="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<transport classname="org.apache.catalina.tribes.transport.nio.PooledParallelSender">
</transport>
<interceptor classname="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector">
<interceptor classname="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor">
</interceptor>
<valve classname="org.apache.catalina.ha.tcp.ReplicationValve" filter="">
<valve classname="org.apache.catalina.ha.session.JvmRouteBinderValve">
<deployer classname="org.apache.catalina.ha.deploy.FarmWarDeployer" tempdir="/tmp/war-temp/" deploydir="/tmp/war-deploy/" watchdir="/tmp/war-listen/" watchenabled="false">
<clusterlistener classname="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener">
<clusterlistener classname="org.apache.catalina.ha.session.ClusterSessionListener">
</clusterlistener>
提示:上述配置内容主要是对集群中各个 Tomcat 实例间进行通信的方式、端口以及 Session 共享算法的设置。本教程由于篇幅所限,不能一一详细介绍,有兴趣的读者可以参看 Tomcat 的官方文档,其中有非常详细的说明。
(7)分别启动两个tomcat,再分别在webapp/root目录下新建一个Hello.jsp
A out.print("Hello! This is A!!");
B out.print("Hello! This is B!!");
(8)打开浏览器分别输入:
http://localhost:10001/Hello.jsp
http://localhost:20001/Hello.jsp
3 使用apache做负载均衡
将下载的apache解压,进入解压后的目录。
./configure --enable-so --enable-mods-shared="proxy proxy_http proxy_ftp proxy_connect headers"
make
make install
然后编辑/usr/local/apache2/conf/httpd.conf
将loadmodule ssl_module ....
前的注释去掉
然后将以下加到文件末尾:
ProxyRequests Off
ProxyPass / balancer://myCluster/
<proxy>
BalancerMember ajp://localhost:10009 route=Tomcat1
BalancerMember ajp://localhost:20009 route=Tomcat2
</proxy>
./usr/local/apache2/bin/apachectl start
在浏览器里输入:
http://localhost/Hello.jsp
多刷新几遍,就可以看见A页面和B页面轮换出现。
至此Tomcat集群搭建成功。
异星工厂太空时代游戏总结
3 天前
2 条评论:
方大牛,你可以用& lt;来代替<,用& gt;来代替>,其中&后不要空格。
发表评论