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

2016-12-30 12:29

环境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集群 负载均衡0

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

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

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

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

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

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

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

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

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

CentOS 6.6下安装配置Tomcat环境 http://www.linuxidc.com/Linux/2015-08/122234.htm

RedHat Linux 5.5安装JDK+Tomcat并部署Java项目  http://www.linuxidc.com/Linux/2015-02/113528.htm

Tomcat权威指南(第二版)(中英高清PDF版+带书签) http://www.linuxidc.com/Linux/2015-02/113062.htm

Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm

Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm

CentOS 64-bit下安装JDK和Tomcat并设置Tomcat开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm

CentOS 6.5下安装Tomcat http://www.linuxidc.com/Linux/2015-01/111415.htm

Tomcat中session的管理机制 http://www.linuxidc.com/Linux/2016-09/135072.htm

Tomcat 的详细介绍请点这里

Tomcat 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-12/138910.htm