`
Callan
  • 浏览: 736592 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

apache2.2 tomcat6 集群

    博客分类:
  • web
阅读更多

使用apache做为控制转发器,后端使用4个tomcat做集群,此次选择的配置方式为SessionSticky(粘性Session),这种方式将同一用户的请求转发到特定的Tomcat服务器上,避免了集群中Session的复制。

 

apache以前配置apache和tomcat可能需要用到mod_jk.so进行apache和tomcat的链接。apache2.2中集成了mod_jk.so的功能,只需简单的把上面6个module的注释打开。

 

1、apache 配置

 

 修改Apache配置文件\Apache2.2\conf\httpd.conf
 a.将以下6个Module的注释去掉:

   LoadModule proxy_module modules/mod_proxy.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
   LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
   LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

 


再找到<IfModule dir_module></IfModule>加上index.jsp

 <IfModule dir_module>
  DirectoryIndex index.html index.jsp
 </IfModule>

 
 在文件的最下面加入

ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:9001 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:9002 loadfactor=1 route=jvm2
BalancerMember ajp://127.0.0.1:9003 loadfactor=1 route=jvm3
BalancerMember ajp://127.0.0.1:9004 loadfactor=1 route=jvm4
<proxy>

 

设置apache2.2虚拟主机
  a.先在conf\httpd.conf中引入配置虚拟主机的控制文件,将配置文件中默认注释掉的配置信息放开就可以了:
   # Virtual hosts
   Include conf/extra/httpd-vhosts.conf
  b.修改conf/extra/httpd-vhosts.conf文件,在最下面加入虚拟主机的配置信息

 

<VirtualHost *:80>  
         ServerAdmin callan@126.com 
         ServerName localhost(域名)   
         ServerAlias localhost(别名)   
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On  
         ProxyPassReverse / balancer://cluster/   
</VirtualHost>  
 
  c.也可以直接在httpd.conf后面加入这段xml
 
2. 配置tomcat
   a.配置tomcat的启动和关闭端口
      若是在同一台机器上同时运行多个tomcat,则需要修改tomcat 的启动端口和关闭端口。
      启动端口修改:将每个tomcat的server.xml文件作如下修改
     <Connector port="8080" protocol="HTTP/1.1"    
               connectionTimeout="20000"    
               redirectPort="8443" />  
        改为
       <Connector port="xxxx" protocol="HTTP/1.1"    
               connectionTimeout="20000"    
               redirectPort="xxxx" />  
         <Connector port="xxxx" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
         如果需要用到tomcat的共享线程池,其端口值也设置为xxxx,保持一致(线程池缺省是被注释掉的):
 
         <Connector executor="tomcatThreadPool"port="xxxx" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
     b.设置tomcat的关闭端口:
       将<Server port="8005" shutdown="SHUTDOWN">修改为
      <Server port="xxxx" shutdown="SHUTDOWN">每个tomcat的端口xxxx不同就行。
  
     c.配置engine
       tomcat 默认的engine配置为:
      <Engine name="Catalina" defaultHost="localhost">
       为了通过AJP来支持负载均衡,需要配置engine的jvmRoute属性。将server.xml的默认engine配置注释掉,按给出的 jvmRoute示例做如下配置:
       分别将4个tomcat配置为
        <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
        <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">
        <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm3">
        <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm4">

  
    d.配置 AJP Connector
    这里是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。
    将server.xml中的缺省配置
     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  
     改成与
     port的值与apache中的文件httpd.conf中<proxy balancer://cluster></proxy>之间配置的均衡器成员的端口一致,一一对应;上面在配置的jvmRoute的值(如jvm1)应该与httpd.conf中<proxy balancer://cluster></proxy>之间配置的均衡器成员的route属性的值一致,且必须唯一。
     例如 tomcatA就改成9001
  
   e.配置Cluster
   打开tomcat的server.xml,默认的Cluster配置如下,缺省被注释掉了:
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
  
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<!--
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
-->
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45562"
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;"/>

<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
 
每个tomcat的端口唯一
全部配置全成后,如果SessionSticky粘性session无效的话,将<proxy balancer://cluster>放到<VirtualHost *:80>
<VirtualHost *:80>
ServerAdmin callan@126.com
ServerName localhost(域名)
ProxyPass / balancer://cluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3
ProxyPassReverse / balancer://cluster/
ErrorLog "logs/lbtest-error.log" 
CustomLog "logs/lbtest-access.log" common 

<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:9001 route=jvm1
BalancerMember ajp://127.0.0.1:9002 route=jvm2
BalancerMember ajp://127.0.0.1:9003 route=jvm3
</proxy>

</VirtualHost>
 
分享到:
评论
1 楼 guanqing123 2013-10-20  
在apache的httpd.conf文件中加入
ProxyRequests Off  
<proxy balancer://cluster> 
BalancerMember ajp://127.0.0.1:9001 loadfactor=1 route=jvm1 
BalancerMember ajp://127.0.0.1:9002 loadfactor=1 route=jvm2 
BalancerMember ajp://127.0.0.1:9003 loadfactor=1 route=jvm3 
BalancerMember ajp://127.0.0.1:9004 loadfactor=1 route=jvm4 
<proxy>
这个,apache就启动不了了。报The requested operation has failed!

相关推荐

    Apache2.2 tomcat6集群练习

    Apache2.2与Tomcat6集群配置教程 在IT行业中,服务器集群是一种常见的技术,用于提高系统的可用性和可扩展性。本教程将详细介绍如何在Apache2.2与Tomcat6环境下搭建集群,以实现负载均衡和高可用性。Apache作为前端...

    Apache2.2 tomcat-6.0.18负载均衡与集群

    在Apache2.2+Tomcat集群中,可以实现会话复制,确保用户在集群中的任何一台服务器上都能继续其之前的会话。Tomcat的集群功能依赖于org.apache.catalina.ha.session.JvmRouteBinderValve,它添加了JVM路由信息到...

    Apache和Tomcat集群配置步骤(Apache2.2,Tomcat6.0).

    安装完成后,在系统服务列表中可以查看到名为“Apache2.2”的服务。 - **Linux下安装**: - **解压文件**: 在 `/home/tools/` 目录下解压 `httpd-2.2.22.tar.gz`。 - **配置安装文件**: - 进入解压后的目录 `httpd...

    apache2.2 tomcat6.0 集群与负载均衡

    Apache 2.2 和 Tomcat 6.0 集群与负载均衡是构建高可用性和高并发Web应用的关键技术。在大型系统中,通过设置集群可以分散服务器压力,提高服务稳定性;而负载均衡则能确保请求均匀分配到各个节点,避免单一节点过载...

    Windows 2008 NLB Apache2.2 Tomcat 5集群安装配置指导手册

    8. 检验Apache+Tomcat集群是否生效:配置完成后,需要验证Apache服务器是否能够正确地将请求转发到Tomcat集群,并由集群中的服务器进行处理。 9. Windows 2008 R2 NLB集群创建:安装并配置好NLB后,需要在Windows ...

    Apache2.2与tomcat7 集群配置

    配置Apache2.2与Tomcat7集群的过程包括安装和配置mod_jk,修改Apache和Tomcat的配置文件,以及测试集群功能。通过这种方式,我们可以构建一个可伸缩、可靠的Web服务架构,以应对高流量和复杂业务场景。 总结来说,...

    Apache2.2+Tomcat集群

    Apache2.2+Tomcat集群 只是一个简单的集群例子,所用到的Apache,Tomcat压缩文件里都有

    apache2.2+tomcat6集群配置

    Apache2.2与Tomcat6集群配置是一种常见的Web服务架构,用于提高网站的可用性和可扩展性。在Windows环境下,这种配置可以实现负载均衡,确保即使单个服务器出现故障,整个系统仍然能继续运行,同时分散请求以降低单一...

    apache+tomcat集群配置

    下载 mod_jk 模块安装包,例如 tomcat-connectors-1.2.39-windows-i386-httpd-2.2.x.zip,然后解压到 Apache 服务器的安装目录下的 modules 目录下,例如 E:\Apache2.2\modules。 四、配置 Apache 服务器 配置 ...

    Windows下整合Apache2.2和Tomcat6.0 集群与负载均衡——亲测

    Windows下整合Apache2.2和Tomcat6.0 集群与负载均衡,本人亲测可用,已经使用到企业应用开发中,长期以来未出现任何问题,内容详尽,即使小白也是一看即懂、

    测试通过的apache2.17_tomcat6集群

    apache2.2+tomcat6集群已经配置好,tomcat优化过,在实际项目发布中直接将项目复制到集群中的所有tomcat的webapps中即可, 此配置中包含是3个tomcat集群, 安装步骤大概如下: 1:安装httpd-2.2.17-win32-x86-no_ssl...

    tomcat7+apache2.2做集群

    通过以上步骤,我们就成功地搭建了一个基于Apache 2.2.4和Tomcat 7.0.70的集群,实现了负载均衡。这只是一个基础配置,实际应用中可能需要考虑更多的因素,如健康检查、会话持久化、故障转移策略等。随着业务增长,...

    Windows下Apache2.2+Tomcat6配置集群、负载均衡、session共享

    在Windows环境下,Apache2.2和Tomcat6的组合是一个常见的Web服务器架构,用于搭建集群、实现负载均衡和处理session共享。Apache作为前端反向代理服务器,负责分发请求到后端的多个Tomcat实例,以提高应用的可用性和...

    linux下apache2.2整合tomcat6详细步骤.docx

    在Linux环境下,将Apache2.2与Tomcat6进行整合是一项常见的任务,这通常涉及到创建一个Web服务器集群,以便能够处理动态和静态内容。Apache作为前端服务器,主要负责静态资源的处理,而Tomcat作为后端应用服务器,...

    Apache_Tomcat集群安装64位(含Apache2.2)

    自己做了一遍tomcat的集群,顺便把apache、tomcat的配置写了一份文档出来,希望可以帮到大家。压缩包里有Apache2.2和完整的文档手册了。Tomcat自己随便找一个就行。 我是用64位操作系统。

    Tomcat6_Apache2.2集群配置说明文档

    Apache2.2可以作为反向代理服务器,隐藏后端的Tomcat集群,接收来自客户端的请求并转发给合适的Tomcat实例。Apache的mod_proxy模块提供了反向代理功能,我们需要启用和配置这个模块。 三、配置步骤 1. 安装与配置...

    Linux+tomcat6+apache2.2集群部署

    在本文中,我们将深入探讨如何在Linux环境下部署一个基于Tomcat 6和Apache 2.2的集群。首先,我们需要准备相应的软件包,包括JDK、Apache HTTP服务器、Tomcat以及JK模块,这些是构建集群的基础组件。 1. **JDK安装*...

Global site tag (gtag.js) - Google Analytics