menu
more_vert
linux环境下Apache+Tomcat集群配置

作者:dayu

#加载 mod_jk.so 文件,放置在最上 LoadModule jk_module /etc/httpd/modules/mod_jk.so #加载 tomcat 参数配置文件 JkWorkersFile conf/workers.properties #日志保存文件 JkLogFile /etc/httpd/logs/mod_jk2.log #日志等级 JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" #######请求拦截, controller负载均衡控制器名称 JkMount /servlet/* controller JkMount /*.jsp controller JkMount /*.do controller ############## end #######################
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

打开workers.properties文件,并写入

#server
worker.list = controller

#========tomcat1========
worker.tomcat1.port=11009  #端口号与tomcat一致
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1

#========tomcat2========
worker.tomcat2.port=12009  #端口号与tomcat一致
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13   
worker.tomcat2.lbfactor = 1

#========controller=负载均衡控制器名称=======
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #多个tomcat以","隔开
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

将文件关联创建好后,就需要加入Apache配置文件中,打开httpd.conf,增加包含mod_jk.conf文件。

  • #vi /etc/httpd/conf/httpd.conf#打开文件 。
  • #Include /etc/httpd/conf/mod_jk.conf#添加该行,建立关联。
  • Listen 80同时可以修改它的访问接口,默认80。

做好关联后现在,要修改tomcatx的server.xml 配置文件。部分修改为:

...
<!--    
    <Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
               connectionTimeout="20000"
               URIEncoding="UTF-8" 
            useBodyEncodingForURI="true" 
            maxThreads="768" 
               minSpareThreads="64" 
            enableLookups="false"  
               redirectPort="8443" />
    -->
<!-- 将该请求端口号该为 上面workers.properties文件中的一致,包括两台-->
<Connector port="11009" protocol="AJP/1.3" redirectPort="8443" />
 ...
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
...
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
<%@ page contentType="text/html; charset=utf-8" %> <%@ page import="java.util.*" %> <html> <head> <title> Cluster App Test </title> </head> <body> Server Info: <% out.println(request.getLocalAddr() + " : " + request.getLocalPort()+ "<br>");%> <% out.println( "<br> ID " + session.getId()+ "<br>"); // 如果有新的 Session 属性设置 String dataName=r equest.getParameter( "dataName"); if (dataName !=n ull && dataName.length()> 0) { String dataValue = request.getParameter("dataValue"); session.setAttribute(dataName, dataValue); } out.println(" <b> Session 列表 </b> <br> "); System.out.println("============================"); Enumeration e = session.getAttributeNames(); while (e.hasMoreElements()) { String name = (String)e.nextElement(); String value = session.getAttribute(name).toString(); out.println( name + " = " + value+" <br> "); System.out.println( name + " = " + value); } %> <form action="test2.jsp" method="POST"> 名称: <input type=text size=20 name="dataName"> <br> 值: <input type=text size=20 name="dataValue"> <br> <input type=submit> </form> </body> </html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

启动Apache

  • #service httpd start
  • #service httpd status#查看是否运行正常

启动tomcatx

  • #cd /usr/local/tomcat{x}/bin#打开bin目录
  • #./startup.sh#启动
  • #tail -f ../logs/catalina.out#查看打印console,ctrl + z关闭退出

浏览器访问:http://123.xx.xxx.xx/test.jsp
页面显示:ID 7B8C934D14F3EF669C437E5B1B8123DB.tomcat1
刷新:ID BBED560EC85BF46ABB639883B9DAF754.tomcat2

至此就完成了Apache+tomcat负载均衡配置了,还可以通过Apache 的ApacheBench来简单测试一下并发。

  • #ab -n 4000 -c 1000 http://123.xx.xxx.xx/#4000请求 + 1000并发数 + 请求的地址,自己的服务器。
    相关的一些数据就可以体现出来了,也可以先开一个tomcat试一下,在配置多个tomcat,进行对比测试。

总结

其实并不难,只是不够细心,所有软件都是需要配置并作关联,抓住这一点,理清思路,问题解决的方法就很多。
网上资料被翻了个遍,自己以后也要记录一些作为回馈。
相关参考:

  • http://www.iteye.com/topic/1017961
  • http://www.centoscn.com/CentosServer/www/2015/0417/5204.html
  • http://www.ha97.com/4617.html

个人博客:http://www.abina.me/articles/2017/01/19/1484820029888.html

linux环境下Apache+Tomcat集群配置

原文地址:http://www.cnblogs.com/jay36/p/7520444.html