环境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
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 defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine defaultHost="localhost" >
改为
<Engine 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的测试页面
在集群配置完成之后,再次打开该页面会发现
打开的已经是tomcat的系统界面了,这说明apache已经将请求发给了tomcat
然后再测试刚刚的jsp页面,浏览器输入192.168.1.120/test/test.jsp
为了区别明显,同时再用另一种浏览器打开
可以看到打印出两个不同的session id 服务器将请求发给了两个tomcat。
更多Tomcat相关教程见以下内容:
RedHat Linux 5.5安装JDK+Tomcat并部署Java项目
Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案