Apache2.2+Mod_jk+Tomcat7集群 负载均衡

环境CentOS6.8
linux1 192.168.1.120  Apache2.2
linux2 192.168.1.121  Tomcat7
linux3 192.168.1.122  Tomcat7
 
Apache+Tomcat集群负载均衡 还有一种方法是利用apache自带的proxy,有时间会再次学习配置一下
 
Linux1上配置apache:
1.去Tomcat官网下载mod_jk
  http://tomcat.apache.org/download-connectors.cgi
  tomcat-connectors-1.2.42-src.tar.gz
 
2.安装jk
  [root@linux1 ~]# tar -zxvf tomcat-connectors-1.2.42-src.tar.gz
  [root@linux1 ~]# cd tomcat-connectors-1.2.42-src
  [root@linux1 ~]# ./configure --with-apxs=/usr/local/apache2/bin/apxs
  [root@linux1 ~]# make
  [root@linux1 ~]# make install
  注意:系统中需要装有jdk 并配置环境变量
 
3.配置httpd.conf
  [root@linux1 ~]#vi /usr/local/apache2/conf/httpd.conf
在LoadModule下面添加
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel warn
JkMount /* controller
JkMount /*.jsp controller
 
4.编辑worker.properties文件
  [root@linux1 conf]# vi workers.properties
worker.list = controller,tomcat1,tomcat2
#========tomcat1========
worker.tomcat1.port=8009
worker.tomcat1.host=192.168.1.121
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
 
 
#========tomcat2========
worker.tomcat2.port=8009
worker.tomcat2.host=192.168.1.122
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
 
#======controller=======
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
worker.controller.sticky_session=1
 
5.重启httpd服务看下有没有错误
  [root@linux1 conf]# service httpd restart
 
linux2上配置Tomcat,linux3上一样配置
1.配置sever.xml
  [root@linux2 conf]# vi server.xml
找到
    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <Engine name="Catalina" defaultHost="localhost" >
改为
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
可以将上面的注释去掉并改掉jvmRoute
也可以直接在没有注释的那句后面加上jvmRoute
注意:jvmRoute的名字就是在workers.properties中的worker的名字
 
 
找到
<!--
<Cluster classname="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
把注释去掉
 
2.建立测试页面
  [root@linux2 tomcat]# cd webapps
  [root@linux2 webapps]# mkdir test
  [root@linux2 webapps]# cd test
  [root@linux2 test]# vi test.jsp
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page import="java.util.*" %>
<html>
        <head>
                <title>Cluster Test</title></head>
        <body>
                Session ID= <%= session.getId()%>
        </body>
</html>
 
开始测试
启动apache和tomcat
可以先看看变化,没有配置集群前,浏览器中输入192.168.1.120

可以看到是apache的测试页面

Apache2.2+Mod_jk+Tomcat7集群 负载均衡

在集群配置完成之后,再次打开该页面会发现

Apache2.2+Mod_jk+Tomcat7集群 负载均衡

打开的已经是tomcat的系统界面了,这说明apache已经将请求发给了tomcat

然后再测试刚刚的jsp页面,浏览器输入192.168.1.120/test/test.jsp

Apache2.2+Mod_jk+Tomcat7集群 负载均衡

为了区别明显,同时再用另一种浏览器打开

Apache2.2+Mod_jk+Tomcat7集群 负载均衡

可以看到打印出两个不同的session id  服务器将请求发给了两个tomcat。

更多Tomcat相关教程见以下内容

Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里

相关推荐