`
zz563143188
  • 浏览: 2276235 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
博客专栏
77fc734c-2f95-3224-beca-6b8da12debc8
编程工具介绍
浏览量:578964
D9710da2-8a00-3ae6-a084-547a11afab81
Spring Mvc实战(...
浏览量:1088055
D3f88135-07de-3968-a0f0-d2f13428c267
项目开发经验
浏览量:1657739
社区版块
存档分类
最新评论

Apache2.2+tomcat6集群负载匀衡

 
阅读更多

最近更新列表

1.IBM的aix中安装jdk(7月21更新)
2.Linux(CentOS)中安装jdk (7月21更新)
3.Linux(CentOS)安装weblogic (7月22更新)
4.Aix系统中安装webLogic (7月22更新)
5.IBM实体机aix中创建weblogic域 (7月23更新)
6.linux中通过VNC创建weblogic域 (7月23更新)
7.在RedHat 5下安装Oracle 10g详解 (7月24更新)
8.linux启动oracle实例 (7月24更新)
9.linux中通过VNC创建oracle实例及网络监听 (7月25更新)
10.linux中关闭ip6的方法 (7月25更新)
11.Jconsole、jvisualvm工具介绍
12.Soupui调用webservies帮助文档
13.Loadrunner 调用Webservice接口测试优化
14.Loadrunner脚本读取XMl文件
15.使用Xmanager远程Aix系统
16.Xmanager图形化远程到aix系统
17.将普通jar文件打包成osgi bundle的方法
18.代码检查规范Checkstyle配置
19.Webloigc 11g配置集群帮助文档
20.Activemq集群配置文档
21.Apache2.2+tomcat6集群配置
22.修改计算机名导致oracle实例不能启动的解决方案
23.导入带有oracle安装程序的虚拟机需要的配置
24.给tomcat和weblogic启动窗口设置标题
25.Tomcat配置下载服务器
26.win8下开启虚拟机hyper-v功能

27.windows、linux、aix查询端口号被哪个程序占用

28. linux下递归的改变目录权限

29.Apache的配置虚拟目录

 

 

1、预备知识

 

本文讲Apache2.2+tomcat集群负载匀衡

 

1.1 本文环境

 

Ø 平台: Wind7

 

Ø 软件: Apache2.2+tomcat6

 

Ø 软件: SOAWARE 3.5

 

Ø 软件: jdk1.6

 

2、工具安装

 

2.1 apche2.2介绍

 

Apache是http服务器,我们利用其对Tomcat进行负载均衡。目前最新版本为2.2.17,下载地址为http://httpd.apache.org/download.cgi#apache22

 

 

目前已经出现Apache2.3.11,但是为beta版本,所以没有使用。

 

下载后直接安装msi即可,如果没有其他的http服务器(如iis)则应该可以成功安装,端口即为80,能够访问http://localhost/说明安装成功。

 

 

2.2 Tomcat

 

Tocmat7目前已经出现稳定版本的7.0.12,Tomcat6则为6.0.32。经我测试,这2个版本的Apache负载均衡配置过程都是一样的,因此下面的配置在Tomcat6或7集群是通用的。但是按照下面的配置,集群中Tomcat不能既有Tomcat6又有Tomcat7,否则虽能够负载均衡,但不能进行session复制,不知其他方式配置的集群是否可以。

 

Tomcat就不用怎么介绍了。既然在本地需要多个节点,那么需要下载ZIP版本的Tomcat。

 

2.3 JK

 

JK是Tomcat提供给http服务器的插件(个人理解的),下载地址为http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/。如下图:

 

这里选择的是mod_jk-1.2.31-httpd-2.2.3.so,如果http服务器是Apache2.0.X版本,则必须选择mod_jk-1.2.31-httpd-2.0.52.so,页面下方有英文的说明,大家可以看下。

 

其实我也在网上看到Apache2.2已经集成Tomcat插件模块了,可以不用JK插件就可以实现Tomcat负载均衡,但也需要一些配置,而JK这个配置相比也不复杂,就先记录下来。

 

3、配置过程

 

下面就直接写过程了,我也是网络上学习的,只是总结下过程并且利用最新的Apache和Tomcat测试了下,还是与网络上有些不同的。

 

3.1修改Apache配置

 

 

3.3.1、修改conf/httpd.conf

 

我的Apache安装在D:\Program Files\Apache Software Foundation\Apache2.2,找到conf目录下的httpd.conf,在文件的最后一行添加

 

include "D:\Program Files\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"

 

3.1.2 、 新建conf/mod_jk.conf文件

 

内容如下:

 

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so

 

JkWorkersFile conf/workers.properties

 

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名

 

JkMount /*.jsp controller

 

3.1.3 、 将下载的JK插件

 

mod_jk-1.2.31-httpd-2.2.3.so复制到Apache安装目录的modules目录下。

 

3.1.4 、新建并编辑conf/workers.properties文件,

 

内容如下:

 

#server

 

worker.list = controller

 

#========tomcat1========

 

worker.tomcat1.port=11009

 

worker.tomcat1.host=localhost

 

worker.tomcat1.type=ajp13

 

worker.tomcat1.lbfactor = 1

 

#========tomcat2========

 

worker.tomcat2.port=12009

 

worker.tomcat2.host=localhost

 

worker.tomcat2.type=ajp13

 

worker.tomcat2.lbfactor = 1

 

#========tomcat3========

 

worker.tomcat3.port=13009

 

worker.tomcat3.host=192.168.0.80 //在我的虚拟机中的,可以算远程的吧

 

worker.tomcat3.type=ajp13

 

worker.tomcat3.lbfactor = 1

 

 

 

#========controller,负载均衡控制器========

 

worker.controller.type=lb

 

worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3

 

worker.controller.sticky_session=false

 

worker.controller.sticky_session_force=1

 

#worker.controller.sticky_session=1

 

这里可以配置任意多个Tomcat,此处配置了3个Tomat服务器,2个本地,1个远程,所以为了它们都能够顺利启动起来,本地的服务器端口都是不同的,如果Tomcat不再同一机器上,没必要改端口的。

 

 

 

 

 

3.2 配 置tomcat

 

配置3个Tomcat服务器,将Tomcat解压后复制3份,我将每个文件夹分别命名为Tomcat1,Tomcat2和Tomcat3,修改每一份的server.xml配置, 如果在同一台电脑上配置tomcat集群,需要把配置好的tomcat环境变量去掉,不然计算机始终会去环境变量下面的tomcat

 

3.2.1 配置tomcat1

 

如果你的tomcat节点不在同一台机器上,则不需要配置。修改tomcat1的server.xml文件。

 

 

 

 

3.2.2 配置tomcat2

 

因为我是同一台电脑上配置的多个tomcat,因些Server的port改为和第一个tomcat不一样的tomcat,修改tomcat2的server.xml文件

 

 

 

 

 

 

 

 

 

 

 

3.2.3 配置Tomcat3(若无虚拟机可省略此步)

 

修改虚拟机中Tomcat3中以上部分的server.xml为:

 

 

因为Tomat3在远程服务器,所以没必要改端口的,而我先进行的本地集群测试后将Tomcat3复制到远程服务器,所以这3个Tomcat端口都不同。

 

AJP13的connector的poat和jvmRoute名称和workers.properties中配置对应。

 

由于截图面积有限,还需要保证本地2个本地Tomcat配置server的port,connector为http1.1的port都不相同。

 

3.3 测试项目

 

3.3.1、测试项目目录

 

 

 

建立test项目,需要在项目的web.xml中添加<distributable/>

 

 

 

 

 

 

建立test.jsp内容如下

 

<%

 

System.out.println("===========");

 

%>

 

 

 

建立test2.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.println("<b>Session 列表</b><br>");

 

System.out.println("============================");

 

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="test2.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>

 

 

 

 

 

Web-INF/Web.xml内容如下

 

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

 

<display-name>TomcatDemo</display-name>

 

<distributable/>

 

</web-app>

 

上面的test项目不用多说,很简单就三个文件。

 

3.3.2 、 session测试

 

将test项目部署到3个tomcat服务器,然后分别启动Apache和3个Tocmat服务器,这些Tomcat启动顺序随意,然后打开http://localhost/test/test2.jsp,结果如下图:

 

 

F5刷新后 ID 为tomcat1与tomcat2切换

 

 

以上的测试说明,集群中的session已经共享,每个集群对于同一访问均有相同的session,而且session中存储的变量也复制了。

 

 

 

3.4 tomcat 集群发部Soaware注意事项

 

3.4.1 、 tomcat集群下面的SA,同一udp端口负载匀衡

 

通过apache+tomcat集群下面发布SA,只要udp端口一样,则集群下面的所有Sa项目负载匀衡。

 

3.4.2 、tomcat集群下的SA发布项目共享

 

通过apache+tomcat集群下面发布SA,只要udp端口一样,则集群下面的所有Sa项目共享。

 

  • 大小: 21.5 KB
  • 大小: 8.5 KB
  • 大小: 26 KB
  • 大小: 24.5 KB
  • 大小: 65.6 KB
  • 大小: 13.1 KB
  • 大小: 63.1 KB
  • 大小: 37.7 KB
  • 大小: 14.4 KB
  • 大小: 22.8 KB
  • 大小: 23 KB
分享到:
评论
1 楼 杰迪-android 2014-10-20  
刚好用到这一块,第一次评价,学习了,谢谢分享

相关推荐

    apache2.2+tomcat6集群配置

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

    Apache2.2+tomcat6.0搭建负载均衡服务器

    Apache2.2与Tomcat6.0的组合可以构建一个高效、可靠的负载均衡服务器系统,以分散客户端请求到多个后端应用服务器,提高整体服务的可用性和响应速度。以下是搭建和配置的关键步骤及知识点: 1. **Apache2.2安装配置...

    Apache2.2+tomcat7+jk+jdk1.6

    本配置"Apache2.2+tomcat7+jk+jdk1.6"旨在实现一个稳定且可靠的环境,特别关注于session的共享与管理,以解决多服务器间的session一致性问题。 Apache2.2是Apache HTTP Server的第2.2版本,提供了强大的静态内容...

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

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

    Apache2.2+JBOSS 5 集群配置

    Apache2.2+JBOSS 5 集群配置主要涉及在Linux环境下构建高可用性和负载均衡的服务器集群,以提升应用服务的稳定性和处理能力。以下是详细的知识点: 1. **JBoss集群架构**: JBoss 集群可以采用两种架构:客户端...

    apache2.2+tomcat6.0负载均衡配置软件

    Apache 2.2 和 Tomcat 6.0 的负载均衡配置是提高Web应用程序性能和可扩展性的重要技术。在高流量环境下,通过将工作负载分散到多个Tomcat实例上,可以确保服务的稳定性和响应速度,同时避免单一服务器过载。下面我们...

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

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

    apache2.4+tomcat7集群

    Apache 2.4 和 Tomcat 7 集群配置是一种常见的Web服务器和应用服务器部署方式,用于提高网站和应用程序的可伸缩性和高可用性。在Windows 7环境下搭建这样的集群,我们可以实现负载均衡、故障转移等功能,以确保服务...

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

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

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

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

    Apache2.2与tomcat7 集群配置

    总结来说,Apache2.2与Tomcat7集群配置涉及的技术主要包括Apache的mod_jk模块、集群理论、负载均衡策略、会话复制、故障转移以及相关配置文件的设置。熟练掌握这些知识点,对于构建高性能的Java Web服务至关重要。

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

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

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

    apache2.2+mod_JK+Tomcat7+Terracotta3.7 集群(重要)

    Apache 2.2、mod_JK、Tomcat 7 和 Terracotta 3.7 是构建高可用性和可伸缩性Web应用集群的关键组件。这个集群解决方案旨在通过将负载分散到多个服务器上,提高应用程序的性能和稳定性。下面将详细阐述这些组件以及...

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

    - 通过浏览器访问`http://172.16.116.1/index.jsp`,检查是否能够成功访问,并观察日志文件确认请求是否被正确地分发至Tomcat集群中的不同节点。 #### 四、注意事项 1. **权限问题**: 确保所有操作均以具有足够...

    windows apache http 2.2+tomcat6.0.29

    标题 "windows apache http 2.2+tomcat6.0.29" 涉及的是在Windows操作系统上配置Apache HTTP服务器2.2版本与Tomcat应用服务器6.0.29的集成。Apache HTTP Server是一款开源的Web服务器,而Tomcat是用于部署Java ...

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

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

Global site tag (gtag.js) - Google Analytics