`
isiqi
  • 浏览: 16829095 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Apache+tomcat集群

阅读更多

用apache和tomcat搭建集群,实现负载均衡

集群的概念
  集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图,同时提供接近容错机的故障恢复能力。集群系统一般通过两台或多台节点服务器系统通过相应的硬件及软件互连,每个群集节点都是运行其自己进程的独立服务器。这些进程可以彼此通信,对网络客户机来说就像是形成了一个单一系统,协同起来向用户提供应用程序、系统资源和数据。除了作为单一系统提供服务,集群系统还具有恢复服务器级故障的能力。集群系统还可通过在集群中继续增加服务器的方式,从内部增加服务器的处理能力,并通过系统级的冗余提供固有的可靠性和可用性。

(一)环境说明
  (1)服务器有4台,一台安装apache,三台安装tomcat
  (2)apache2.0.55、tomcat5.5.15、jk2.0.4、jdk1.5.6或jdk1.4.2
  (3)ip配置,一台安装apache的ip为192.168.0.88,三台安装tomcat的服务器ip分别为192.168.0.1/2/4
  (二)安装过程
  (1)在三台要安装tomcat的服务器上先安装jdk
  (2)配置jdk的安装路径,在环境变量path中加入jdk的bin路径,新建环境变量JAVA_HOME指向jdk的安装路径
  (3)在三台要安装tomcat的服务器上分别安装tomcat,调试三个tomcat到能够正常启动
  (4)tomcat的默认WEB服务端口是8080,默认的模式是单独服务,我的三个tomcat的WEB服务端口修改为7080/8888/9999
  v修改位置为tomcat的安装目录下的conf/server.xml
  修改前的配置为
  <Connector port="8080" maxHttpHeaderSize="8192"
  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  enableLookups="false" redirectPort="8443" acceptCount="100"
  connectionTimeout="20000" disableUploadTimeout="true" />
  修改后的配置为
  <Connector port="7080" maxHttpHeaderSize="8192"
  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  enableLookups="false" redirectPort="8443" acceptCount="100"
  connectionTimeout="20000" disableUploadTimeout="true" />
  依次修改每个tomcat的监听端口(7080/8888/9999)
  (5)分别测试每个tomcat的启动是否正常
  http://192.168.0.1:7080
  http://192.168.0.2:8888
  http://192.168.0.4:9999|||
  
(三)负载均衡配置过程
  (1)在那台要安装apache的服务器上安装apache2.0.55,我的安装路径为默认C:“Program Files“Apache Group“Apache2
  (2)安装后测试apache能否正常启动,调试到能够正常启动http://192.168.0.88
  (3)下载jk2.0.4后解压缩文件
  (4)将解压缩后的目录中的modules目录中的mod_jk2.so文件复制到apache的安装目录下的modules目录中,我的为C:“Program Files“Apache Group“Apache2“modules
  (5)修改apache的安装目录中的conf目录的配置文件httpd.conf,在文件中加LoadModule模块配置信息的最后加上一句LoadModule jk2_module modules/mod_jk2.so
  (6)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下修改前
  <!-- An Engine represents the entry point (within Catalina) that processes
  every request. The Engine implementation for Tomcat stand alone
  analyzes the HTTP headers included with the request, and passes them
  on to the appropriate Host (virtual host). -->
  <!-- You should set jvmRoute to support load-balancing via AJP ie :
  <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
  -->
  <!-- Define the top level container in our container hierarchy -->
  <Engine name="Catalina" defaultHost="localhost">
  修改后
  <!-- An Engine represents the entry point (within Catalina) that processes
  every request. The Engine implementation for Tomcat stand alone
  analyzes the HTTP headers included with the request, and passes them
  on to the appropriate Host (virtual host). -->
  <!-- You should set jvmRoute to support load-balancing via AJP ie :-->
  <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
  <!-- Define the top level container in our container hierarchy
  <Engine name="Catalina" defaultHost="localhost">
  -->
  将其中的jvmRoute="jvm1"分别修改为jvmRoute="tomcat1"和jvmRoute="tomcat2"和jvmRoute="tomcat3"
  (7)然后重启三个tomcat,调试能够正常启动。
  (8)在apache的安装目录中的conf目录下创建文件workers2.propertie,写入文件内容如下
  # fine the communication channel
  [channel.socket:192.168.0.1:8009]
  info=Ajp13 forwarding over socket
  配置第一个服务器tomcatId=tomcat1 #要和tomcat的配置文件server.xml中的jvmRoute="tomcat1"名称一致debug=0 lb_factor=1 #负载平衡因子,数字越大请求被分配的几率越高
  # Define the communication channel
  [channel.socket:192.168.0.2:8009]
  info=Ajp13 forwarding over socket
  tomcatId=tomcat2
  debug=0
  lb_factor=1
  # Define the communication channel
  [channel.socket:192.168.0.4:8009]
  info=Ajp13 forwarding over socket
  tomcatId=tomcat3
  debug=0
  lb_factor=1
  [status:]
  info=Status worker, displays runtime information.
  [uri:/jkstatus.jsp]
  info=Display status information and checks the config file for changes.
  group=status:
  [uri:/*]
  info=Map the whole webapp
  debug=0
  (9)在三个tomcat的安装目录中的webapps建立相同的应用,我和应用目录名为TomcatDemo,在三个应用目录中建立相同 WEB-INF目录和页面index.jsp,index.jsp的页面内容如下
  <%@ page contentType="text/html; charset=GBK" %>
  <%@ 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 = request.getParameter("dataName");
  if (dataName != null && dataName.length() > 0) {
  String dataValue = request.getParameter("dataValue");
  session.setAttribute(dataName, dataValue);
  }
  out.print("<b>Session 列表</b>");
  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="index.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>
  (10)重启apache服务器和三个tomcat服务器,到此负载 均衡已配置完成。测试负载均衡先测试apache,访问http://192.168.0.88/jkstatus.jsp能否正常访问,并查询其中的内容,有三个tomcat的相关配置信息和负载说明,访问http://192.168.0.88/TomcatDemo/index.jsp看能够运行,能运行,则已建立负载均衡。|||
  (四)tomcat集群配置
  (1)负载均衡配置的条件下配置tomcat集群
  (2)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下修改前
  <!--
  <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
  managerClassName="org.apache.catalina.cluster.session.DeltaManager"
  expireSessionsOnShutdown="false"
  useDirtyFlag="true"
  notifyListenersOnReplication="true">
  <Membership
  className="org.apache.catalina.cluster.mcast.McastService"
  mcastAddr="228.0.0.4"
  mcastPort="45564"
  mcastFrequency="500"
  mcastDropTime="3000"/>
  <Receiver
  className="org.apache.catalina.cluster.tcp.ReplicationListener"
  tcpListenAddress="auto"
  tcpListenPort="4001"
  tcpSelectorTimeout="100"
  tcpThreadCount="6"/>
  <Sender
  className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
  replicationMode="pooled"
  ackTimeout="5000"/>
  <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
  filter=".*“.gif;.*“.js;.*“.jpg;.*“.png;.*“.htm;.*“.html;.*“.css;.*“.txt;"/>
  <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
  tempDir="/tmp/war-temp/"
  deployDir="/tmp/war-deploy/"
  watchDir="/tmp/war-listen/"
  watchEnabled="false"/>
  <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
  </Cluster>
  -->
  修改后
  <!-- modify by whh -->
  <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
  managerClassName="org.apache.catalina.cluster.session.DeltaManager"
  expireSessionsOnShutdown="false"
  useDirtyFlag="true"
  notifyListenersOnReplication="true">
  <Membership
  className="org.apache.catalina.cluster.mcast.McastService"
  mcastAddr="228.0.0.4"
  mcastPort="45564"
  mcastFrequency="500"
  mcastDropTime="3000"/>
  <Receiver
  className="org.apache.catalina.cluster.tcp.ReplicationListener"
  tcpListenAddress="auto"
  tcpListenPort="4001"
  tcpSelectorTimeout="100"
  tcpThreadCount="6"/>
  <Sender
  className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
  replicationMode="pooled"
  ackTimeout="5000"/>
  <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
  filter=".*“.gif;.*“.js;.*“.jpg;.*“.png;.*“.htm;.*“.html;.*“.css;.*“.txt;"/>
  <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
  tempDir="/tmp/war-temp/"
  deployDir="/tmp/war-deploy/"
  watchDir="/tmp/war-listen/"
  watchEnabled="false"/>
  <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
  </Cluster>
  <!-- modify by whh -->
  将集群配置选项的注释放开即可,如上。
  (3)重启三个tomcat.到此tomcat的集群已配置完成。

分享到:
评论

相关推荐

    Apache+Tomcat集群配置详解

    Apache+Tomcat集群配置是一个常见的高可用性和负载均衡解决方案,用于提高Web应用程序的性能和可靠性。以下是详细的配置步骤和相关知识点: 1. **Apache安装**: - Apache HTTP Server需要安装在80端口上,作为...

    apache+tomcat集群配置

    Apache + Tomcat 集群配置 Apache + Tomcat 集群配置是指将 Apache 服务器与 Tomcat 服务器集成,以提高服务器的性能和可扩展性。本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器...

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

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

    Apache+Tomcat集群

    Apache+Tomcat集群是一种常见的Web服务器和应用服务器集群架构,用于提高网站的可用性和可扩展性。Apache作为前端服务器,负责接收客户端的HTTP请求,并根据配置的负载均衡策略将这些请求转发给后端的多个Tomcat实例...

    apache+tomcat集群

    apache+tomcat集群 配置使用方法

    Apache+Tomcat集群配置

    Apache+Tomcat集群配置,Apache+Tomcat集群配置,Apache+Tomcat集群配置

    apache+tomcat集群文档

    - 本文档针对Apache Tomcat集群配置进行了详尽的说明,特别适合新手入门学习,通过本文档能够快速掌握Apache Tomcat集群的基本概念、搭建步骤及注意事项。 #### 知识点详解: ##### 一、集群基础知识 1. **学习...

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

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

    apache+tomcat集群技术总结

    4. **本地配置Apache + Tomcat集群** - **环境说明**:在这个例子中,我们有一个Apache服务器和两个Tomcat实例,以及mod_jk模块用于两者之间的通信。 - **安装与配置**: - 安装Apache和Tomcat,确保版本匹配。 ...

    Apache+Tomcat集群配置续

    Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续Apache+Tomcat集群配置续

    apache+tomcat集群session复制.pdf

    ### Apache+Tomcat集群与Session复制详解 #### 一、背景与目标 本文档由作者吴钢奇于2010年9月23日撰写,主要介绍了如何在Linux环境下搭建一个Apache+四个Tomcat组成的集群,并实现了这些Tomcat之间的Session复制...

    apache+tomcat集群配置文件和文档

    这份"apache+tomcat集群配置文件和文档"将涵盖以上所有要点,指导你逐步配置和测试Apache+Tomcat集群。按照文档操作,你将能够构建出一个高效且稳定的Web服务环境。在实际操作中,务必根据你的硬件资源和具体需求...

Global site tag (gtag.js) - Google Analytics