`

apache tomcat 集群

 
阅读更多

 

目标:在同一台Linux服务器上安装 apache 和 两个 tomcat 的集群,tomcat解析所有页面和静态文件, apache 仅作代理,负责负载均衡。

 

1. 下载,安装 Apache

 

地址:http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.19.tar.gz

 

cd /usr/local/src/apache2 #进入下载目录

wget http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.19.tar.gz #下载源码

tar -zxvf httpd-2.2.19.tar.gz #解压

cd httpd-2.2.19 #进入解压后目录

./configure --prefix=/usr/local/apache2  #检测环境

make #编译

make install #安装

 

以上将软件安装在了 /usr/local/apache2 目录

 

2. 下载,安装 mod_jk 

 

mod_jk 是用来连接 apache 和 tomcat 的模块

 

下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz

wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz

tar -zxvf tomcat-connectors-1.2.31-src.tar.gz

cd tomcat-connectors-1.2.31-src

cd native

./configure --with-apxs=/usr/local/apache2/bin/apxs 
#with-apxs 是必选参数,用于指定apache服务器的apxs程序路径,在apache的bin目录下

make #编译

 

我们需要的是mod_jk.so模块,所以不需要安装,经过以上步骤后,可以在 native/apache-2.0 目录下找到。

 

然后将 mod_jk.so 复制到 /usr/local/apache2/modules 目录下。

 

cd tomcat-2.0

cp mod_jk.so /usr/local/apache2/modules
 

3. 下载,安装 Tomcat

 

下载地址:http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-7/v7.0.19/bin/apache-tomcat-7.0.19.tar.gz

 

cd /usr/local/tomcat

wget http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-7/v7.0.19/bin/apache-tomcat-7.0.19.tar.gz

tar -zxvf apache-tomcat-7.0.19.tar.gz

mv apache-tomcat-7.0.19  apache-tomcat-7.0.19-1 #修改文件夹名字

cp apache-tomcat-7.0.19-1 apache-tomcat-7.0.19-2 #复制一份,用于集群

 

因为,tomcat 是纯Java 编写,所以解压即可,无需安装。 当然前提是已经安装  JDK 才行。

 

这样 tomcat 目录下,就有两个 tomcat 服务器。 apache-tomcat-7.0.19-1 和 apache-tomcat-7.0.19-2 一下简称为 tomcat1, tomcat2.

 

 

4. 将连个 tomcat 服务器 同时启动,加载同一个Web应用

 

将Web应用的根目录放在:/var/webapp/Test/WebRoot 目录下

 

在 Tomcat1,Tomcat2 的 conf/Catalina/localhost 目录下分别创建文件 ROOT.xml

 

内容如下:

然后就可启动 Tomcat 了

 

进入 tomcat 的 bin 目录 执行: ./startup.sh

 

两个Tomcat同时启动时,会报错。 因为端口被占用。 所以要修改 server.xml

 

在 Tomcat2 的 server.xml 中修改。 要修改的端口号有三个

 




分别改为: 9005, 9080, 9009 后,就可以同时启动两个Tomcat了

 

此时两个Tomcat都可以单独访问了。

 

5. 通过 Apache 将两个Tomcat集群

 

修改 Apache 目录下 conf/httpd.conf 配置文件, 在文件的末尾增加以下内容

 


994行:在 httpd 中载入 mod_jk 模块

 

997行:指定负载均衡的配置文件为  conf/worker.propeties (与 httpd.conf 在同一个文件夹)

998行:指定mod_jk模块的 日志文件位置

999行:日志的级别

 

1000行:表示将 访问路径以 .jsp 结尾的请求,转交为Tomcat处理

1001行:表示将 访问路径以 .do 结尾的请求,转交为Tomcat处理

1002行:表示将 访问路径以 .action结尾的请求,转交为Tomcat处理

 

1003行:表示将 所有的访问请求都转交为Tomcat处理

 

 

下面是负载均衡的配置: worker.properties 内容。 关于此文件的全部设定选项和说明在刚刚解压的 mod_jk 的 conf 文件夹下面可以找到  worker.properties.  该文件中有详细说明

 

worker.list=loadbalancer						#定义负载均衡的名称
worker.loadbalancer.type=lb 					#定义负载均衡的类型,为lb
worker.loadbalancer.error_escalation_time=0 	#切换错误状态时间
worker.loadbalancer.max_reply_timeouts=10
worker.loadbalancer.sticky_session=1			#1代表为true,0代表为false。
#worker.loadbalancer.sticky_session_force=true
 
worker.loadbalancer.balance_workers=lb1,lb2	#负载均衡的工作者名称

worker.lb1.reference=worker.template 	#lb1参考worker.template工作模板
worker.lb1.host=localhost			#lb1的ip地址
worker.lb1.port=8009				#lb1端口,这里是ajp端口,不是网站端口
worker.lb1.activation=A 				#A:active模式 D:sticky模式 S:不使用

worker.lb2.reference=worker.template
worker.lb2.host=localhost
worker.lb2.port=9009
worker.lb2.activation=A

worker.template.type=ajp13					#上面lb1,lb2参考下面的值worker.template,协议ajp13
worker.template.socket_connect_timeout=5000	#套接字连接超时为5000毫秒,默认为0
worker.template.socket_keepalive=true 			#开启保持为真,默认为false
worker.template.ping_mode=A 				#使用cping/cpong模式,有C,P,I,A四个模式。A全选
worker.template.ping_timeout=10000 			#探测cping/cpong超时间默认10000毫秒
worker.template.connection_pool_minsize=0		#连接池关闭最小时间
worker.template.connection_pool_timeout=600	#连接池600秒
worker.template.reply_timeout=300000 			#答复超时300000毫秒
worker.template.recovery_options=3			#重试次数

 

下面是网上找的关于 worker.loadbalancer.sticky_session 这个选项网上解释


1=true:假如A服务器接受了请求,以后的请求都会继续发给A服务器,B接受了请求一直发给B服务器。会话不会轮询,session保持很好,建议使用。

0=false:假如A服务器接受了请求,按F5再次刷新结果到了B服务器,再按一次又到了C服务器。会话会轮询,session保持不好不稳定,session复制给所有服务器,但是立马就断了。所以使用true比较多,我这里也设置了1。


总结:worker.balancer.sticky_session请求是发送给一台服务器(true),还是发送给多台服务器(false)。Session复制只与tomcat集群配置有关,与这个sticky无关。但是sticky会影响session复制。如果这个选项为真那么session保持良好,如果为假那么需要所有服务器复制session所以不稳定。

 

6. 修改Tomcat配置的 server.xml

 

Tomcat1 的 server.xml

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

修改为:

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

 

Tomcat2  的 server.xml

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

修改为:

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

 

 jvmRoute 的值,需要与 worker.properties 中的对应的Tomcat名字设置一致

 

以上步骤完成后,启动 Tomcat1, Tomcat2, Aapche 就完成集群了。

  • 大小: 13.8 KB
  • 大小: 12 KB
  • 大小: 11.1 KB
  • 大小: 13.4 KB
  • 大小: 32.8 KB
分享到:
评论

相关推荐

    Apache Tomcat 集群

    要构建一个Tomcat集群,首先你需要有至少两个运行的Tomcat实例。配置主要涉及以下几个方面: 1. **修改server.xml**:在每个Tomcat实例的`conf/server.xml`文件中,需要添加集群相关的配置。这包括定义`Cluster`...

    apache Tomcat 集群 访问问题

    Apache Tomcat集群访问问题主要涉及的是在高并发或者负载均衡场景下,如何通过配置多个Tomcat实例来提高Web服务的可用性和性能。集群允许将请求分发到多个服务器上,从而实现负载均衡,并且提供了故障转移的能力,...

    基于Xen虚拟机实现Apache tomcat 集群搭建

    基于Xen虚拟机实现Apache Tomcat集群搭建的知识点如下: 1. Xen虚拟机技术:Xen是一个开源的虚拟机监视器,允许用户在同一台物理主机上运行多个虚拟机,每个虚拟机可以运行不同的操作系统。Xen具有高性能和高扩展性...

    Apache Tomcat 集群 配置详解(真实项目)

    该文档是我综合了无数相关文档,在我公司项目实施成功后总结的一套文档,经历了数次改动,希望能指引大家少走弯路。 如有表述不清的地方请联系我:QQ:603678227 共同进步。

    apache tomcat集群

    以下是关于Apache Tomcat集群的一些关键知识点: 1. **集群概念**:在Web服务器集群中,多个服务器共享应用程序状态和用户会话,以实现故障转移、负载分担和扩展性。在Tomcat中,集群可以通过网络通信来同步session...

    ApacheTomcat集群整合教程

    Apache Tomcat 集群整合教程旨在教你如何配置和部署多台Tomcat服务器,以实现高可用性和负载均衡。在大型应用系统中,单一的Tomcat服务器可能无法满足高并发和高可靠性的需求,这时就需要通过集群来分散服务压力。本...

    Apache tomcat集群

    Apache Tomcat是一个流行的开源Java Servlet容器,用于部署...通过以上步骤,你可以在Windows环境中配置一个基本的Apache Tomcat集群。不过,实际生产环境可能还需要更复杂的安全设置、日志管理、性能优化等高级配置。

    Apache Tomcat集群

    ### Apache Tomcat集群配置详解 #### 一、引言 随着互联网应用的不断发展与扩展,单个服务器往往难以满足日益增长的服务需求。因此,通过构建Apache Tomcat集群来提高服务的可用性和负载均衡成为了常见的解决方案...

    apache tomcat集群要用到的

    apache tomcat集群要用到的mod_jk.so

    apache+tomcat集群配置

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

    apache tomcat 集群 负责均衡 session复制

    NULL 博文链接:https://xueweiabcok.iteye.com/blog/1841448

    apache+tomcat集群文档

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

    apache-tomcat集群配置

    在高流量或需要高可用性的环境中,设置Apache Tomcat集群是必要的,以实现负载均衡和故障转移。集群配置可以确保即使单个Tomcat实例出现故障,应用程序也能继续运行,同时通过分散请求来提高性能。 集群配置主要...

    Tomcat集群与负载均衡

    ### Apache Tomcat 集群与负载均衡 #### 1. 集群相关简介 ##### 1.1 集群 集群是一组通过高速网络互相连接的计算机,它们作为一个整体协同工作,对外呈现出单一系统的特性。客户端与集群交互时,会感觉像在与一个...

Global site tag (gtag.js) - Google Analytics