`
jetway
  • 浏览: 483671 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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文件

 

找到如下信息,并进行修改

 

Html代码 复制代码 收藏代码
  1. #LoadModule proxy_module modules/mod_proxy.so   
  2. #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so   
  3. #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so   
  4. #LoadModule proxy_connect_module modules/mod_proxy_connect.so   
  5. #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so   
  6. #LoadModule proxy_http_module modules/mod_proxy_http.so  
#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
Html代码 复制代码 收藏代码
  1. #Include conf/extra/httpd-vhosts.conf  
#Include conf/extra/httpd-vhosts.conf

 

 去掉注释

 

在httpd.conf最后加上如下代码

 

Html代码 复制代码 收藏代码
  1. ProxyRequests Off   
  2. <proxy balancer://cluster>  
  3.     BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1  
  4.     BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2  
  5. </proxy>  
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文件

 

找到如下代码

 

Html代码 复制代码 收藏代码
  1. <VirtualHost *:80>  
  2.     ServerAdmin webmaster@dummy-host.sm.com   
  3.     DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/docs/dummy-host.sm.com"   
  4.    ServerName dummy-host.sm.com   
  5.     ServerAlias www.dummy-host.sm.com   
  6.     ErrorLog "logs/dummy-host.sm.com-error.log"   
  7.     CustomLog "logs/dummy-host.sm.com-access.log" common   
  8. </VirtualHost>  
  9.   
  10. <VirtualHost *:80>  
  11.     ServerAdmin webmaster@dummy-host2.sm.com   
  12.     DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/docs/dummy-host2.sm.com"   
  13.     ServerName dummy-host2.sm.com   
  14.     ErrorLog "logs/dummy-host2.sm.com-error.log"   
  15.     CustomLog "logs/dummy-host2.sm.com-access.log" common   
  16. </VirtualHost>  
<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文件最后加入如下代码

 

Html代码 复制代码 收藏代码
  1. <VirtualHost *:80>  
  2.     ServerAdmin test@qq.com   
  3.     ServerName localhost   
  4.     ServerAlias localhost   
  5.     ProxyPass / balancer://cluster/   
  6.     ProxyPassReverse / balancer://cluster/   
  7.     ErrorLog "logs/dummy-host2.sm.com-error.log"   
  8.     CustomLog "logs/dummy-host2.sm.com-access.log" common   
  9. </VirtualHost>  
<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任意设置一个)

 

 

Html代码 复制代码 收藏代码
  1. <Server port="8005" shutdown="SHUTDOWN">  
  2.   
  3. 将8005改为9005,防止与第一个冲突  
<Server port="8005" shutdown="SHUTDOWN">

将8005改为9005,防止与第一个冲突
Html代码 复制代码 收藏代码
  1.   
  2. <Connector port="8080" protocol="HTTP/1.1"    
  3.                connectionTimeout="20000"    
  4.                redirectPort="8443" />  
  5.   
  6. 将8080改为9080,将8443改为9443  
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

将8080改为9080,将8443改为9443
Html代码 复制代码 收藏代码
  1. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  
  2. 将8009改为9009,将8443,改为9443  
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
将8009改为9009,将8443,改为9443

 

两个tomcat均需要做如下改动

 

Java代码 复制代码 收藏代码
  1. 找到   
  2. <Engine name="Catalina" defaultHost="localhost"  >   
  3. 改成   
  4. <Engine name="Catalina" defaultHost="localhost"  jvmRoute="jvm2">   
  5.   
  6. 并在<Engine name="."..></Engine>标签中加上如下代码   
  7.   
  8.     <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">   
  9.         <Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false"    
  10.         notifyListenersOnReplication="true" mapSendOptions="6"/>   
  11.         <Channel className="org.apache.catalina.tribes.group.GroupChannel">   
  12.             <Membership className="org.apache.catalina.tribes.membership.McastService"  
  13.                 address="228.0.0.4" port="45565" frequency="500" dropTime="3000"/>   
  14.             <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"  
  15.                 address="auto" port="5002" selectorTimeout="100" maxThreads="6"/>   
  16.             <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">   
  17.                 <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>   
  18.             </Sender>   
  19.             <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>   
  20.             <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>   
  21.             <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>   
  22.         </Channel>   
  23.         <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"  
  24.             filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>   
  25.         <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"  
  26.             tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>   
  27.         <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>   
  28.     </Cluster>  
找到
<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">

 

Java代码 复制代码 收藏代码
  1. 改动Membership port 的值与另一个设置为不同  
改动Membership port 的值与另一个设置为不同
Java代码 复制代码 收藏代码
  1. 改动Receiver 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,看看效果吧!刷新一下会有意外惊喜

 

 

分享到:
评论

相关推荐

    实例Apache负载均衡+Tomcat集群

    在搭建Apache负载均衡和Tomcat集群之前,需要准备相应的硬件设备。文中提到使用两台服务器,每台服务器上部署两个Tomcat实例,形成一个包含四个Tomcat实例的集群。这里的服务器可以是实体服务器,也可以使用虚拟机。...

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

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

    Window下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+Linux集群和均衡负载(Session同步复制

    apache+tomcat+jk 均衡负载和集群

    Apache+Tomcat+JK是一个常见的Web服务器和应用服务器集群解决方案,用于实现负载均衡和高可用性。这个配置中,Apache作为前端反向代理服务器,Tomcat作为后端的应用服务器,而JK模块是Apache与Tomcat之间的连接器,...

    Apache+Tomcat+Linux集群和负载均衡

    ### Apache+Tomcat+Linux集群和负载均衡 在IT领域,Apache+Tomcat+Linux集群与负载均衡技术是实现高可用性、高性能Web服务的重要手段之一。本文将围绕这一主题展开详细讨论,涵盖关键技术概念、配置流程及注意事项...

    Apache2负载均衡+Tomcat6集群

    1. **反向代理**:Apache2作为前端负载均衡器,接收用户请求,然后通过mod_proxy将请求转发到Tomcat集群中的某个实例。 2. **健康检查**:Apache2可以定期检查后端Tomcat实例的健康状态,如果发现某个实例不可用,...

    Apache+Tomcat+JK 实现集群负载均衡文档

    Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...

    apache+tomcat集群配置

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

    tomcat服务集群+apache负载均衡+jk链接tomcat-apache

    标题中的"tomcat服务集群+apache负载均衡+jk链接tomcat-apache"涉及的是一个常见的Web服务器架构,其中Apache HTTP Server作为前端负载均衡器,通过JK模块与后端的Tomcat集群进行通信,以实现高可用性和性能优化。...

    Apache+Tomcat集群

    Apache作为前端服务器,负责接收客户端的HTTP请求,并根据配置的负载均衡策略将这些请求转发给后端的多个Tomcat实例(即Tomcat集群)来处理。这种架构可以有效分散负载,防止单一服务器过载,同时提供了冗余,当某个...

    Apache+Tomcat集群和负载均衡及Session绑定

    【Apache+Tomcat 集群与负载均衡及Session...通过以上配置,Apache+Tomcat集群可以实现高效的负载均衡和高可用性,同时通过Session绑定确保用户会话的连续性。注意定期监控和优化集群性能,以应对不断变化的业务需求。

    apache+tomcat+jk集群

    在“apache+tomcat+jk集群”这一主题中,我们将深入探讨如何通过Apache、Tomcat以及JK模块的结合,实现负载均衡和集群配置,从而提升系统的性能和稳定性。 ### Apache的角色 Apache是一款广泛使用的开源Web服务器...

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

    本文将详细介绍如何在一机双Tomcat环境下搭建Apache+Tomcat集群,并深入解析其中的关键配置和技术细节。 #### 二、Apache+Tomcat集群的优势 1. **高可靠性(HA)**:通过集群管理软件实现在主服务器发生故障时,备份...

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

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

    Apache,Tomcat集群和负载均衡

    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负载...

    apache2.4+tomcat7集群

    在Windows 7环境下搭建这样的集群,我们可以实现负载均衡、故障转移等功能,以确保服务的稳定运行。 首先,Apache 2.4 作为反向代理服务器,它会接收来自客户端的HTTP请求,然后根据预设的策略(如轮询、最少连接数...

    CentOS系统下Apache负载均衡、Tomcat集群所需安装包

    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

Global site tag (gtag.js) - Google Analytics