在本机Windows7系统上安装一个Ubuntu虚拟机,在虚拟机内搭建两个tomcat集群,
查看linxu版本命令:
uname -a
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zN3ADOyMDMxEzMwIDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
解压命令:
tar -zxvf xxxx.tar.gz
第一步:安装jdk
1、下载jdk-7u67-linux-i586.tar.gz,放到 /usr/local目录下,解压
生成文件夹 jdk1.7.0_67
2、配置环境变量
编辑/etc/profile,插入一段内容
重启虚拟机,再输入 java -version,确认java安装成功
第二步:安装apache
下载httpd-2.2.31.tar.gz,解压到/usr/local,生成文件夹httpd-2.2.31
进入httpd-2.2.31,执行命令
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all
编译安装
make
make install
4、启动apache
/usr/local/apache2/bin/apachectl start
关闭apache
/usr/local/apache2/bin/apachectl stop
如果报apache is currently not installed,就重新安装下apache
第三步:Apache Tomcat Connector (也就是mod_jk)
1、下载 tomcat-connectors-1.2.41-src.tar.gz,解压到 /usr/local 生成文件夹
tomcat-connectors-1.2.41-src
2、进入 /tomcat-connectors-1.2.41-src/native,执行命令 ./buildconf.sh
如果报 autoconf 没有安装,那就用 执行 apt -get install autoconf安装
3、配置参数
./configure --with-apxs=/usr/local/apache2/bin/apxs \
--with-java-home=$JAVA_HOME --with-java-platform=2 \
--enable-jni
4、编译 安装
make
make install
如果成功结束,你可以在/usr/local/apache2/modules/下找到mod_jk.so文件。
第四步:安装tomcat
1、下载apache-tomcat-6.0.41.tar.gz,解压到 /usr/local,生成文件夹
apache-tomcat-6.0.41,再执行重命名命令
cp apache-tomcat-6.0.41 apache-tomcat-6.0.41-1,
再解压一次并重命名为 apache-tomcat-6.0.41-2
2、修改server.xml(两个tomcat都要做)
(1) 修改端口,把其中一个tomcat的各种端口修改,一个8080,一个8081,避免冲突
(2)修改server.xml
两个tomcat分别改为 tomcat1和tomcat2
(3)增加集群的支持,两个tomcat的server.xml都插入下面的内容
<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"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<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"/>
</Cluster>
第五步:配置apache
1、进入/usr/local/apache2/conf,编辑 httpd.conf,插入一下内容
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Specify jk log file.
JkLogFile /var/log/mod_jk.log
# Specify jk log level [debug/error/info]
JkLogLevel info
# Specify workers.properties, this file tell jk:
# how many nodes and where they are.
JkWorkersFile conf/workers.properties
# Specify which requests should handled by which node.
JkMount /* controller
2、在conf目录下创建 workers.properties,插入内容
#所有节点列表,其中controller是一个逻辑结点,负责负载均衡控制,
#如果JkMount中的URL指定给了controller就表示这个请求会被自动散列到某个物理节点上。
#注意:真正负责处理请求的tomcat的名称(这里就是tomcat1,tomcat2)必须于它们在conf/server.xml
#文件中配置的jvmRout的属性值是一致的!
worker.list = controller,tomcat1,tomcat2
#========tomcat1========
worker.tomcat1.port=6009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcat2.port=7009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balance_workers=tomcat1,tomcat2 #指定分担请求的tomcat,旧版本中的balanced_workers,已不再推荐使用!
worker.controller.sticky_session=1 #sticky_session为1表示,
#当某一 client的session创建之后,后续由该客户端发起的请求,也就是这个session的所有请求都始终由第一次处理该请求的结点
#负责处理(除非该结点挂掉)
至此tomcat集群配置完成,通过一个简单的web应用可以测试
第六步、部署web应用 TestMVC
将TestMVC.war包分别放到两个tomcat的webapps目录下
注意web应用中的web.xml需要在</web-app>前面插入<distributable/>
第七步:测试集群
1、启动apache /usr/local/apache2/bin/apachectl start
2、启动两个tomcat sh startup.sh
3、访问集群 http://localhost/TestMVC
非集群访问方式 http://localhost:8080/TestMVC和http://localhost:8081/TestMVC