`

Tomcat集群配置笔记 ( by quqi99 )

 
阅读更多

Tomcat集群配置笔记 ( by quqi99 )

作者:张华 发表于:2011-04-06
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

( http://blog.csdn.net/quqi99 )

h1 { margin-top: 0.6cm; margin-bottom: 0.58cm; line-height: 200%; page-break-inside: avoid; }h1.western { font-family: "Times New Roman",serif; font-size: 22pt; }h1.cjk { font-family: "Arial Unicode MS"; font-size: 22pt; font-style: normal; font-weight: bold; }h1.ctl { font-size: 22pt; font-weight: bold; }h1.样式-标题-1- + -四号-western { font-family: "Times New Roman",serif; font-size: 14pt; line-height: 150%; }h1.样式-标题-1- + -四号-cjk { font-family: "Arial Unicode MS"; font-style: normal; font-weight: bold; line-height: 150%; }h1.样式-标题-1- + -四号-ctl { font-size: 22pt; font-weight: bold; line-height: 150%; }p { margin-bottom: 0.21cm; }a:link { color: rgb(0, 0, 255); }

. 环境说明

1. 服务器3 台,一台安装apache 服务,两台安装tomcat

2. 使用到的各个组件及下载地址:

apache_2.2.11-win32-x86-no_ssl.msi

http://httpd.apache.org/download.cgi

tomcat 6 压缩版

http://tomcat.apache.org/download-60.cgi

apacheJK 连接器(Windows 版本),作为apache 的一个module ,网站同时提供了配置文件的使用方法

mod_jk-1.2.28-httpd-2.2.3.so

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/

3.ip 配置

一台安装apacheip192.168.1.50 ,两台安装tomcatip 分别为192.168.1.24192.168.1.52 (根据各自情况分配)

二.安装过程

1. 在两台安装tomcat 的机器上安装jdk6 (至少jdk5

2. 配置jdk 的安装路径, 在环境变量path 中加入jdkbin 路径, 新建环境变量JAVA_HOME 指向jdk 的安装路径

3. 安装tomcat ,并测试tomcat 的启动是否正常

http://192.168.1.24:8080

http://192.168.1.50:8080

三.负载均衡配置过程

1.192.168.1.50 机器上安装apache 服务,我的安装路径默认为:D:/Program Files/Apache Software Foundation/Apache2.2

2. 安装完成后测试能否正常启动,http://192.168.1.50 ,如图所示:

3.mod_jk-1.2.28-httpd-2.2.3.so 拷贝到apachemodules 目录下

2. 修改apache 的配置文件 httpd.cof ,在最后加上下面这段话:

LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.3.so # 载入jk 连接器

JkWorkersFile conf/workers.properties # 设置负载均衡的配置文件,即定义均衡规则

JkLogFile logs/mod_jk.log # 指定日志文件

JkLogLevel debug # 指定日志级别

# 配置apache 将哪些请求转发给JK 进行均衡

JkMount /*.jsp loadbalancer

JkMount /test/* loadbalancer

3. 分别修改两个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).

Documentation at /docs/config/engine.html -->

<!-- You should set jvmRoute to support load-balancing via AJP ie :

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

-->

<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).

Documentation at /docs/config/engine.html -->

<!-- You should set jvmRoute to support load-balancing via AJP ie : -->

<Engine name="Catalina" defaultHost="localhost" jvmRoute="node1">

<Engine name="Catalina" defaultHost="localhost" >

将其中的jvmRoute="jvm1" 分别修改为jvmRoute="node1"jvmRoute="node2"

4.apacheconf 目录下创建workers.property 文件,输入以下内容:

# fine the communication channel

# 定义负载均衡的所有主机名,和前面tomcat 配置文件的JVMroute 属性相对应

# 其中的loadbalancer 是虚拟的主机,负责负载均衡,姑且当成是apache 本身

worker.list=node1,node2,loadbalancer

# node1 使用AJPJK 通讯

worker.node1.port=8009 # 工作端口,若没占用则不用修改

worker.node1.host=192.168.1.24 # node1 的地址为localhost ,如果tomcat 在其他服务器则输入该服务器的地址

worker.node1.type=ajp13 # 类型

worker.node1.lbfactor=100 # 负载平衡因数

worker.node2.port=9009 # 工作端口,若没占用则不用修改

worker.node2.host=192.168.1.52 #node2 服务器的地址

worker.node2.type=ajp13 # 类型

worker.node2.lbfactor=100 # 负载因子,值越大则JK 分发到此tomcat 的负荷越多

# 定义loadbalancer 类型为“负载均衡器(lb )”

worker.loadbalancer.type=lb

# 定义loadbalancer 进行负载均衡的对象

worker.loadbalancer.balanced_workers=node1,node2

worker.loadbalancer.sticky_session=false

worker.loadbalancer.sticky_session_force=false

5. 在两个tomcat 的安装目录中的webapps 建立相同的应用,我的应用名为test ,在两个应用目录中建立相同 WEB-INF 目录和页面test.jsp 的页面内容如下

<%@ page language = "java" contentType = "text/html; charset=ISO-8859-1"

pageEncoding = "GBK" %>

<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >

< html >

< head >

< meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" >

< title > helloapp </ title >

</ head >

< body >

<%

System.out.println( "call test.jsp" ); // Tomcat 控制台上打印一些跟踪数据

%>

SessionID: <%= session.getId() %>

</ body >

</ html >

6. 重启 apache 服务器和两个 tomcat 服务器,到此负载均衡已经配置完成,测试负载均衡: http://192.168.1.50/test/test.jsp , 运行正常则已建立负载均衡

四.集群配置

1. 负载均衡的条件下配置tomcat 集群

2 .分别修改两个tomcat 的配置文件conf/server.xml, 修改内容如下

修改前:

<!--

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

-->

修改后:

< Cluster className = "org.apache.catalina.ha.tcp.SimpleTcpCluster"

channelSendOptions = "8" >

< 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"

bind = "192.168.1.100" address = "228.0.0.4" port = "45564" frequency = "500"

dropTime = "3000" />

< Receiver

className = "org.apache.catalina.tribes.transport.nio.NioReceiver"

address = "auto" port = "4000" autoBind = "100" selectorTimeout = "5000"

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" />

</ Channel >

< Valve className = "org.apache.catalina.ha.tcp.ReplicationValve" filter = "" />

< Valve className = "org.apache.catalina.ha.session.JvmRouteBinderValve" />

< 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.JvmRouteSessionIDBinderListener" />

< ClusterListener

className = "org.apache.catalina.ha.session.ClusterSessionListener" />

</ Cluster >

注意:bind tomcat 服务器所在的机器的ip 地址

3. 重启两个tomcat ,到此tomcat 的集群配置完成

五.应用配置

对于要进行负载和集群的的tomcat 目录下的webapps 中的应用中的WEB-INF 中的web.xml 文件要添加如下一句配置
<distributable/>

配置前:

<? xml version = "1.0" encoding = "UTF-8" ?>

< web-app id = "WebApp_ID" version = "2.4"

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" >

< display-name > test </ display-name >

< distributable />

< welcome-file-list >

< welcome-file > index. html </ welcome-file >

< welcome-file > index. htm </ welcome-file >

< welcome-file > index. jsp </ welcome-file >

< welcome-file > default. html </ welcome-file >

< welcome-file > default. htm </ welcome-file >

< welcome-file > default. jsp </ welcome-file >

</ welcome-file-list >

</ web-app >

六.测试集群

重新启动apache 服务器和两个tomcat 服务器,输入地址:http://192.168.1.50/test/test.jsp

运行结果如下:

如果同一个浏览器的sessionID 不变,则集群配置成功

分享到:
评论

相关推荐

    quqi.rar_mtk_mtk software_mtk平台

    "quqi.rar_mtk_mtk software_mtk平台"这个标题表明这是一个与MTK平台相关的软件包,可能是用于MTK手机的多功能下载工具。 描述中提到的"MTK平台的多功能下載軟件,適用所有MTK手機"暗示这是一款针对所有采用MediaTek...

    视频播放源代码directshow开发

    9. **调试工具**:如GraphEdit,这是一个可视化的过滤图编辑工具,可以帮助开发者调试过滤图的连接和配置。 在项目提供的"新建 Microsoft Word 文档.doc"中,可能包含了关于这个DirectShow视频播放器的源代码和详细...

    dm8_setup_win64_ent_8.1.1.45_20191121.iso

    国内最好的数据库达梦DM8,曲奇网盘下载链接:https://quqi.com/s/1243222/wcOZdaWgUlHrwhOk

    数学建模拟合与插值.ppt

    数学建模拟合与插值.ppt

    [net毕业设计]ASP.NET教育报表管理系统-权限管理模块(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    mysql相关资源.txt

    mysql相关资源.txt

    利用HTML+CSS+JS的国漫分享网站(响应式)

    此项目为一个HTML+CSS+JS的国漫分享网站,用户可以在此网站中观看自己喜欢的国漫。此网站共有4个页面,分别为首页,最新动态,热门推荐,分类。页面动漫图片齐全,内容可更改。可用于期末课程设计或个人课程设计。

    Python爬虫爬取漫画

    Python爬虫爬取漫画

    C++语言编程用模拟退火算法解决旅行商问题

    模拟退火算法应用。C++语言编程用模拟退火算法解决旅行商问题。该资源包含模拟退火算法C++语言的源代码。模拟退火算法是一种基于概率的全局优化算法,最初来自于物理学中的退火过程。它通过模拟金属冷却时原子排列逐渐趋于最低能量状态的过程来寻找问题的最优解。模拟退火算法常用于解决非线性、组合优化问题,特别适合于大规模、复杂的搜索空间。

    传感器试题及答案.doc

    传感器试题及答案.doc

    [net毕业设计]ASP.NET网上书店(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    MongoDB数据表基本操作中文最新版本

    本文档主要讲述的是MongoDB数据表基本操作;希望对大家会有帮助;感兴趣的朋友可以过来看看

    1-全国各省废气、废水排放二氧化硫、氮氧化物、烟尘、颗粒物排放量统计数据2011-2021年-社科数据.zip

    本数据集提供了2011至2021年间全国各省废气和废水中主要污染物的排放量统计数据。数据涵盖了二氧化硫、氮氧化物、烟尘和颗粒物等关键污染物的排放量,为研究中国环境状况和污染物排放趋势提供了宝贵信息。数据显示,2011-2021年间,各省的二氧化硫排放量从数十万吨到数百万吨不等,其中广东、广西、海南等省份的排放量较高。氮氧化物排放量同样显示出地域差异,北京、天津等北方城市的排放量相对较低,而一些工业大省如河北、山西的排放量较高。颗粒物排放量统计显示,工业源和生活源是主要的排放源,其中工业源排放量占比较大。这些数据不仅对环保政策制定者具有参考价值,也为学术研究提供了实证基础。

    脉冲宽度测量单片机课程设计.doc

    脉冲宽度测量单片机课程设计.doc

    [net毕业设计]ASP.NET在线毕业论文提交系统的设计与实现(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    求职与招聘(源代码+论文+说明文档).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    [net毕业设计]ASP.NET视频点播系统的设计与实现(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    全国矢量地图数据【国道+高速】-ArcGis Shape 格式数据集

    全国矢量地图数据【国道+高速公路】ArcGIS Shape格式数据集是一种专门用于地理信息系统(GIS)的矢量数据集,包含中国范围内国道和高速公路的详细路网信息。该数据集广泛应用于交通规划、导航、物流分析和灾害应急等领域,具有高精度和易用性。 数据集特点: 1. 数据内容: 国道:包括以“G”开头的国家级公路,如G1京哈高速、G107国道等。 高速公路:包括全国范围内的所有高速公路网,覆盖主要经济区、城市和边境口岸。 属性数据: 道路编号(国道或高速公路编号)。 道路名称。 道路等级(如一级、二级、快速路等)。 起点和终点坐标。 道路长度(单位:公里)。 相关属性(如路段建成年份、设计速度、车道数等)。 2. 数据格式: **Shapefile(.shp)**格式,支持主流GIS软件(如ArcGIS、QGIS)及数据处理工具(如Python、Matlab)。 3. 投影坐标系: 一般采用WGS84地理坐标系,或可根据需求转换为**GCJ-02(火星坐标系)**以配合国内导航应用。

    4.html

    4

Global site tag (gtag.js) - Google Analytics