`

apache与tomcat负载集群的3种方法 (转载)

 
阅读更多

 

集群tomcat主要是解决SESSION共享的问题

花了两天时间学习apache与tomcat的集成方法,现在把学习成果记录下来。
apache与tomcat负载集群集成方法有3种jk、jk_proxy、http_proxy
本次集成使用的软件版本:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->apache:httpd-2.2.17-win32-x86-no_ssl.msi
tomcat:apache
-tomcat-6.0.20.zip
jdk:jdk
-6u14-windows-i586.exe


本次测试是1个apache集成两个tomcat。
安装apache http server省略,访问地址为http://127.0.0.1:8081
安装tomcat,解压apache-tomcat-6.0.20.zip,测试时我是把两个tomcat分开放在不同的虚拟机,其中一个是和apache同一台虚拟机。
两个tomcat分别命名为worker2和worker3
先说tomcat.worker2的配置:
server.xml
(1)配置http监听端口,这里端口设为8079,该步骤非必要,只要不冲突就行了。

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><Connector port="8079" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />


(2)配置AJP监听端口,这里端口设为8077,该步骤非必要,只要不冲突就行了。

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><Connector port="8077" protocol="AJP/1.3" redirectPort="8443" />


(3)配置服务器标识,这里标识名配置为:worker2,添加jvmRoute="worker2",该步骤必须。

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">

在Engine节点启用集群配置,只需去掉Cluster节点前的注释就行了,该步骤必须,配置了集群才能实现Session复制,如果只有一个集群,只按我下边的配置就行了,如果多个集群,则不能按此配置,tomcat服务器内的帮助文档/docs/cluster-howto.html,/docs/config/cluster.html有介绍,需要的可以参考下。

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">
   
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 


要实现session复制,还需要在context.xml添加属性distributable="true",如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><Context distributable="true">

如果不想在context.xml中添加distributable="true",还有另一方法是在应用程序的web.xml中添加<distributeable/>,不过这方法我没有测试。
配置完成,访问地址为:http://127.0.0.1:8079

另一个tomcat.worker3的配置
server.xml

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><Connector port="8078" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker3">
   
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

context.xml配置tomcat.worker2一样。
配置完成,访问地址为:http://127.0.0.1:8078
注意:如果两个tomcat是放在同一台机内,server.xml可能还需要修改其它端口,请确认两个tomcat能正常启动。

在tomcat.worker2和tomcat.worker3的webapps文件夹添加同样的测试文件test"test.jsp

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><html>
<head>
  
<title>helloapp</title>
</head>
<body>
<%
System.out.println(
"call test.jsp");

%>   
SessionID: 
<%=session.getId() %>  
</body>
</html>

访问http://127.0.0.1:8078/test/test.jsp和http://127.0.0.1:8079/test/test.jsp,确保能成功访问。

现在开始apache和tomcat的不同方式集成
1、jk方式集成
下载mod_jk-1.2.31-httpd-2.2.3.so,请下载合适的mod_jk版本,改名为mod_jk.so放进modules文件夹内
修改conf/httpd.conf配置

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkMount  /*.do loadbalancer
JkMount  /*.jsp loadbalancer

增加conf/workers.properties文件,添加内容

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->worker.list=loadbalancer
worker.worker2.port=8077   #ajp的监听端口
worker.worker2.host=108.88.3.105
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.worker3.port=9009
worker.worker3.host=127.0.0.1
worker.worker3.type=ajp13
worker.worker3.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=worker2,worker3 #这里在的worker2、worker3为需要与上边tomcat设置的别名一致
worker.loadbalancer.sticky_session=1

配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。

2、ajp_proxy
去掉httpd.conf文件中下面内容的注释(删掉#号),开启下边的配置

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->Include conf/extra/httpd-vhosts.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

注意:
除了mod_proxy.so,mod_proxy_balancer.so,mod_proxy_connect.so
如果是采用ajp_proxy,需要加载mod_proxy_ajp.so这个模块;
如果是采用http_proxy,需要加载mod_proxy_http.so这个模块;

httpd.conf,删除刚才jk方式的配置内容,增加下边的配置

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->ProxyRequests Off
<proxy balancer://loadbalancer> 
BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=worker3
BalancerMember ajp://108.88.3.105:8077 loadfactor=1 route=worker2
</proxy>

conf/extra/httpd-vhosts.conf增加配置

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><VirtualHost *:8081>
         ServerAdmin xxxx@xxx.com
         ServerName localhost
         ServerAlias localhost
         ProxyPass / balancer://loadbalancer/ stickysession=jsessionid nofailover=On
         ProxyPassReverse / balancer://loadbalancer/
         ErrorLog "logs/loadbalancer-error.log"
         CustomLog "logs/loadbalancer-access.log" common
</VirtualHost>

配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。

3、http_proxy
http_proxy的配置与ajp_proxy类似,修改方法2的httpd.conf配置如下,其它不变

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->ProxyRequests Off
<proxy balancer://loadbalancer> 
BalancerMember http://127.0.0.1:8078 loadfactor=1 route=worker3
BalancerMember http://108.88.3.105:8079 loadfactor=1 route=worker2
</proxy>

配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。

apache_tomcat配置文件下载:apache_tomcat

分享到:
评论

相关推荐

    apache tomcat负载集群

    apache tomcat负载集群,appache负载,tomcat负载

    apache与tomcat负载集群的实现

    在构建高性能、高可用...总结来说,Apache与Tomcat的联合部署及负载集群的实现,旨在优化性能、提升可用性和提供故障恢复能力。通过合理的配置和管理,可以构建出强大的Web服务架构,满足大型网站和企业级应用的需求。

    apache与tomcat负载集群的3种方法.docx

    关于apache整合tomcat后的一些参数设置,实现一个tomcat的集群,我自己实现过了

    apache_tomcat负载集群配置

    文章apache_tomcat负载集群配置http://www.blogjava.net/pengo/archive/2011/04/15/348331.html的附件源码

    Apache和Tomcat实现集群和负载均衡(WindowsNT)

    为了实现Apache与Tomcat的集群及负载均衡,在Windows NT环境下需要准备以下软件环境: 1. **Apache**: 版本2.0.55。可以从官方网站http://httpd.apache.org/下载。该版本适用于Windows平台,且不包含SSL支持。 2. *...

    Apache,Tomcat集群和负载均衡

    Tomcat集群和负载均衡包括了apache-tomcat-5.5.29.zip,apache_2.2.4-win32-x86-no_ssl.msi,mod_jk-1.2.28-httpd-2.2.3.so,ApacheTomcat整合文档.doc,Apache,Tomcat集群和负载均衡教程.doc,Tomcat负载均衡.pdf

    apache+tomcat集群配置

    本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。 一、安装 Apache 服务器 首先,需要安装 Apache ...

    Apache+Tomcat服务器集群配置详细步骤

    ### Apache+Tomcat服务器集群配置详细步骤 #### 一、引言 在现代Web开发中,随着业务规模的不断扩大和用户需求的日益增长,单一服务器往往难以满足高性能、高可靠性的要求。为了应对这一挑战,通常采用Apache+...

    Apache的Tomcat负载均衡和集群(linux,centos)

    Apache 的 Tomcat 负载均衡和集群 ( linux, centos) jkmod

    Apache+Tomcat负载均衡与集群配置详解

    Apache+Tomcat负载均衡与集群配置是提升Web应用性能和高可用性的重要手段。这篇文章将详细介绍如何使用Apache作为前端负载均衡器,与多台Tomcat服务器配合构建集群环境。 首先,我们要理解负载均衡的基本概念,它是...

    Apache Tomcat 负载均衡

    本文将基于提供的文件信息,深入解析Apache Tomcat负载均衡的配置与实现机制。 ### 一、理解Apache Tomcat负载均衡 负载均衡在IT领域是指将工作负载(如网络流量或数据处理任务)分布到多个计算资源(如服务器)上...

    反向代理负载均衡 Apache + Tomcat集群

    反向代理负载均衡 Apache + Tomcat集群 多的我也不多说了 看文档

    结合Apache和Tomcat实现集群和负载均衡

    ### 结合Apache和Tomcat实现集群与负载均衡 #### 一、引言 在现代Web应用开发中,为了提高服务的稳定性和响应速度,通常会采用集群和负载均衡技术。本文将详细介绍如何通过Apache和Tomcat这两款强大的开源工具来...

    Apache+tomcat负载均衡

    Apache通常通过其模块mod_proxy来实现负载均衡,它可以与Tomcat或者其他应用服务器进行集成。 在Apache中配置负载均衡,首先需要安装mod_proxy和mod_proxy_balancer模块。这些模块允许Apache作为反向代理服务器,...

    Apache,Tomcat集群和负载均衡所需软件下载

    当面临高并发访问或需要提高服务可用性时,Apache与Tomcat的集群和负载均衡就显得尤为重要。Apache的 mod_jk 模块,如"mod_jk-apache-2.0.55.so",就是实现这一目标的关键组件。mod_jk是Apache的连接器,用于将HTTP...

    Apache与Tomcat集群负载均衡(一键打包解压即可运行)

    Tomcat和Apache集群和负载均衡配置 Tomcat版本:apache-tomcat-7.0.26 Apache版本:Apache2.2.25 jre版本:1.6.0_26 集群和负载均衡配置已整好,解压后,只要点击run.bat一键启动,即可看到集群效果。 运行成功后,...

Global site tag (gtag.js) - Google Analytics