花了一下午的时间,研究了一下Apache 负载均衡+Tomcat集群的问题,至于原理高手解释下,我是照葫芦画瓢!现在与大家分享一下
一、本机环境
1.Windows 7 64位操作系统
2.java版本 "1.6.0_20"
3.Apache安装包httpd-2.2.21-win32-x86-no_ssl.msi,默认安装
4.tomcat压缩包(apache-tomcat-6.0.24.zip)
5.在一台机器上进行的
二、配置
1.前提是Apache安装正确,启动正常
2.解压缩多个tomcat,例如d:\tomcat_01,d:\tomcat_02
3.配置httpd.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
#Include conf/extra/httpd-vhosts.conf
去掉注释
在httpd.conf最后加上如下代码
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</proxy>
上面的BalancerMember成员是配置tomcat集群的
4.配置httpd-vhosts.conf文件
找到如下代码
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.sm.com
DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/docs/dummy-host.sm.com"
ServerName dummy-host.sm.com
ServerAlias www.dummy-host.sm.com
ErrorLog "logs/dummy-host.sm.com-error.log"
CustomLog "logs/dummy-host.sm.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.sm.com
DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/docs/dummy-host2.sm.com"
ServerName dummy-host2.sm.com
ErrorLog "logs/dummy-host2.sm.com-error.log"
CustomLog "logs/dummy-host2.sm.com-access.log" common
</VirtualHost>
找到这些代码删除或者注释掉
在httpd-vhosts.conf文件最后加入如下代码
<VirtualHost *:80>
ServerAdmin test@qq.com
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/
ProxyPassReverse / balancer://cluster/
ErrorLog "logs/dummy-host2.sm.com-error.log"
CustomLog "logs/dummy-host2.sm.com-access.log" common
</VirtualHost>
域名与路径根据自己需要配置
5.配置tomcat,修改conf/server.xml文件
说明,我只用了两个tomcat集群
修改第二个tomcat(两个tomcat任意设置一个)
<Server port="8005" shutdown="SHUTDOWN">
将8005改为9005,防止与第一个冲突
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
将8080改为9080,将8443改为9443
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
将8009改为9009,将8443,改为9443
两个tomcat均需要做如下改动
找到
<Engine name="Catalina" defaultHost="localhost" >
改成
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">
并在<Engine name="."..></Engine>标签中加上如下代码
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false"
notifyListenersOnReplication="true" mapSendOptions="6"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4" port="45565" frequency="500" dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto" port="5002" selectorTimeout="100" maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
第一个tomcat配置为<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
改动Membership port 的值与另一个设置为不同
改动Receiver port的值与另一个设置为不同
为了防止冲突
6.所有配置已经完毕,我们现在可以进行测试
7.为了让效果更加明显,我们改动\tomcat_01\webapps\ROOT\index.html,在<body></dody>中加上<h1>tomcat1</h1>
改动\tomcat_02\webapps\ROOT\index.html,在<body></dody>中加上<h1>tomcat2</h1>
8.在浏览器中输入http://localhost,看看效果吧!刷新一下会有意外惊喜
9.欢迎讨论....
分享到:
相关推荐
在搭建Apache负载均衡和Tomcat集群之前,需要准备相应的硬件设备。文中提到使用两台服务器,每台服务器上部署两个Tomcat实例,形成一个包含四个Tomcat实例的集群。这里的服务器可以是实体服务器,也可以使用虚拟机。...
反向代理负载均衡 Apache + Tomcat集群 多的我也不多说了 看文档
1. **安装Tomcat**:解压缩四个Tomcat实例到指定目录,例如`D:\Tomcat集群服务器\tomcat6.0`, `tomcat6.01`, `tomcat6.02`, `tomcat6.03`。 2. **配置AJP连接器**:在每个Tomcat的`server.xml`文件中,添加AJP监听...
Apache+Tomcat+Linux集群和均衡负载(Session同步复制
Apache+Tomcat+JK是一个常见的Web服务器和应用服务器集群解决方案,用于实现负载均衡和高可用性。这个配置中,Apache作为前端反向代理服务器,Tomcat作为后端的应用服务器,而JK模块是Apache与Tomcat之间的连接器,...
### Apache+Tomcat+Linux集群和负载均衡 在IT领域,Apache+Tomcat+Linux集群与负载均衡技术是实现高可用性、高性能Web服务的重要手段之一。本文将围绕这一主题展开详细讨论,涵盖关键技术概念、配置流程及注意事项...
1. **反向代理**:Apache2作为前端负载均衡器,接收用户请求,然后通过mod_proxy将请求转发到Tomcat集群中的某个实例。 2. **健康检查**:Apache2可以定期检查后端Tomcat实例的健康状态,如果发现某个实例不可用,...
Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...
本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。 一、安装 Apache 服务器 首先,需要安装 Apache ...
标题中的"tomcat服务集群+apache负载均衡+jk链接tomcat-apache"涉及的是一个常见的Web服务器架构,其中Apache HTTP Server作为前端负载均衡器,通过JK模块与后端的Tomcat集群进行通信,以实现高可用性和性能优化。...
Apache作为前端服务器,负责接收客户端的HTTP请求,并根据配置的负载均衡策略将这些请求转发给后端的多个Tomcat实例(即Tomcat集群)来处理。这种架构可以有效分散负载,防止单一服务器过载,同时提供了冗余,当某个...
【Apache+Tomcat 集群与负载均衡及Session...通过以上配置,Apache+Tomcat集群可以实现高效的负载均衡和高可用性,同时通过Session绑定确保用户会话的连续性。注意定期监控和优化集群性能,以应对不断变化的业务需求。
在“apache+tomcat+jk集群”这一主题中,我们将深入探讨如何通过Apache、Tomcat以及JK模块的结合,实现负载均衡和集群配置,从而提升系统的性能和稳定性。 ### Apache的角色 Apache是一款广泛使用的开源Web服务器...
本文将详细介绍如何在一机双Tomcat环境下搭建Apache+Tomcat集群,并深入解析其中的关键配置和技术细节。 #### 二、Apache+Tomcat集群的优势 1. **高可靠性(HA)**:通过集群管理软件实现在主服务器发生故障时,备份...
Apache 的 Tomcat 负载均衡和集群 ( linux, centos) jkmod
Apache,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负载...
在Windows 7环境下搭建这样的集群,我们可以实现负载均衡、故障转移等功能,以确保服务的稳定运行。 首先,Apache 2.4 作为反向代理服务器,它会接收来自客户端的HTTP请求,然后根据预设的策略(如轮询、最少连接数...
CentOS系统下Apache负载均衡、Tomcat集群所需安装包:apache-tomcat-8.0.15.tar.gz,autoconf-2.69.tar.xz,httpd-2.2.9.tar.gz,libtool-2.4.2.tar.gz,tomcat-connectors-1.2.37-src.tar.gz,zlib