RedHat下搭建Tomcat集群

2024-05-13 14:58
文章标签 集群 tomcat 搭建 redhat

本文主要是介绍RedHat下搭建Tomcat集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、软件准备

RedHat:RedHat Enterprise Linux6.0

Apache Httpd Server:httpd-2.2.24.tar.gz 下载地址:http://httpd.apache.org/download.cgi

Tomcat:apache-tomcat-6.0.35.zip 下载地址:http://tomcat.apache.org/download-60.cgi

Apache Tomcat Connector:tomcat-connectors-1.2.37-src.tar.gz 下载地址:http://tomcat.apache.org/download-connectors.cgi

2、安装Apache Httpd Server

关于Apache Httpd Server的安装此处略过,参见 Red Hat Enterprise Linux 6下安装Apache Httpd Server
3、安装Apache Tomcat Connector

解压源文件

tar -xzvf tomcat-connectors-1.2.37-src.tar.gz

进入源码目录

cd tomcat-connectors-1.2.37-src/native/

编译和安装

./buildconf.sh

./configure --with-apxs=/usr/local/apache2/bin/apxs --with-java-home=$JAVA_HOME --with-java-platform=2 --enable-jni

make


 

安装成功之后进入cd /usr/local/apache2/modules/目录下,可以看到mod_jk.so文件


4、Tomcat安装及配置

Tomcat存放目录 /usr/local/

tomcat-6.0.35_1、tomcat-6.0.35_2

修改tomcat-6.0.35_1的端口配置信息server.xml

开启Tomcat集群支持server.xml

此处增加jvmRoute="tomcat1",这里的tomcat1值要和后面workers.properties值保持一致,建议的命名是从tomcat1开始增加

在<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> </Engine>之间增加关于集群的配置。

Tomcat提供了一份默认的配置,可以参考如下地址:

http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

我们可以直接使用Tomcat提供的默认配置来进行实验,但有一点需要注意

官方提供的address="auto",如果在虚拟机中进行实验的话需要进行修改一下,把地址修改为localhost或自己机器的ip地址就可以,不然启动时会报错误。

附:完整的cluster配置如下


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

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

address="228.0.0.4"

port="45564"

frequency="500"

dropTime="3000"/>

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

address="localhost"

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>

修改tomcat-6.0.35_2的端口配置信息server.xml


5、配置Apache Httpd Server

cd /usr/local/apache2/conf/

修改配置文件httpd.conf在文件末尾增加如下配置信息

# Load mod_jk module

LoadModule jk_module modules/mod_jk.so

# Specify jk log file.

JkLogFile /var/log/mod_jk.log

# Specify jk log level [debug/error/info]

JkLogLevel info

# Specify workers.properties, this file tell jk:

# how many nodes and where they are.

JkWorkersFile conf/workers.properties

# Specify which requests should handled by which node.

JkMount /* controller

参考地址:http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html

在Apache配置文件夹下增加一个配置文件workers.properties


文件内容如下:


worker.list=controller,tomcat1,tomcat2

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

worker.tomcat1.port=8009

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1

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

worker.tomcat2.port=8109

worker.tomcat2.host=localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

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

worker.controller.type=lb

worker.controller.balance_workers=tomcat1,tomcat2

worker.controller.sticky_session=1

#sticky_session为1表示


到此为止关于集群已经搭建好了基本环境

如果要让应用程序支持集群,需要在做如下两点:

  1. 在应用程序web.xml文件中需要加入:<distributable/>元素。

  2. Session中存放的数据(如attribute)需要实例序列化。


所使用的Tomcat及Web项目: 下载

这篇关于RedHat下搭建Tomcat集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/986026

相关文章

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

SpringBoot的内嵌和外置tomcat的实现方式

《SpringBoot的内嵌和外置tomcat的实现方式》本文主要介绍了在SpringBoot中定制和修改Servlet容器的配置,包括内嵌式和外置式Servlet容器的配置方法,文中通过示例代码介绍... 目录1.内嵌如何定制和修改Servlet容器的相关配置注册Servlet三大组件Servlet注册详

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

MongoDB搭建过程及单机版部署方法

《MongoDB搭建过程及单机版部署方法》MongoDB是一个灵活、高性能的NoSQL数据库,特别适合快速开发和大规模分布式系统,本文给大家介绍MongoDB搭建过程及单机版部署方法,感兴趣的朋友跟随... 目录前言1️⃣ 核心特点1、文档存储2、无模式(Schema-less)3、高性能4、水平扩展(Sh

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

MySQL集群高可用架构的两种使用小结

《MySQL集群高可用架构的两种使用小结》本文介绍了MySQL的两种高可用解决方案:组复制(MGR)和MasterHighAvailability(MHA),文中通过示例代码介绍的非常详细,对大家的学... 目录一、mysql高可用之组复制(MGR)1.1 组复制核心特性与优势1.2 组复制架构原理1.3

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

tomcat日志中文乱码问题及解决方案

《tomcat日志中文乱码问题及解决方案》文章主要介绍了在使用Tomcat时遇到的乱码问题及其解决方法,页面输出乱码可能由于server.xml配置、HTML标签、编程输出编码不一致引起,解决方法包括... 目录一、页面输出乱码1.server.XML配置未注明编码格式2.catalina.bawww.cp

springBoot (springCloud2025)集成redisCluster 集群的操作方法

《springBoot(springCloud2025)集成redisCluster集群的操作方法》文章介绍了如何使用SpringBoot集成RedisCluster集群,并详细说明了pom.xm... 目录pom.XMLapplication.yamlcluster配置类其他配置类连接池配置类Redis

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境