文档章节

tomcat +apache 配置集群

流萤飘枫丶
 流萤飘枫丶
发布于 2017/01/16 17:17
字数 1221
阅读 14
收藏 2

APACHE2.2.25+TOMCAT6.0.37配置负载均衡

目标:

使用 apache 和 tomcat 配置一个可以应用的 web 网站,要达到以下要求:

1.   Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均衡。

2.   为系统设定 Session 超时时间,包括 Apache 和 tomcat

3.   为系统屏蔽文件列表,包括 Apache 和 tomcat

注:本例程以一台机器为例子,即同一台机器上装一个apache和4个Tomcat。

一、前期准备工作:安装用的程序(前提保证已安装了JDK1.5以上的版本)

APAHCE 2.2.25下载:httpd-2.2.25-win32-x86-no_ssl.msi

TOMCAT6.0.37下载:apache-tomcat-6.0.37-windows-x64.zip直接解压。

二、安装过程

APAHCE安装目录:D:\Apache。

四个TOMCAT目录:自行解压到(D:\Tomcat集群服务器\)下。分别为 tomcat1,tomcat2,tomcat3,tomcat4

这几个安装过程就不详细说明了。

三、配置

1、Apache配置

1.1、httpd.conf配置

修改APACHE的配置文件D:\Apache \conf\httpd.conf

将以下Module的注释去掉,这里并没有使用mod_jk.so进行apache和tomcat的链接,从2.X以后apache自身已集成了mod_jk.so的功能。只需简单的把下面几行去掉注释,就相当于以前用mod_jk.so比较繁琐的配置了。这里主要采用了代理的方法,就这么简单。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

再找到<IfModule dir_module></IfModule>加上index.jsp修改成

<IfModule dir_module>

DirectoryIndex index.html index.jsp

</IfModule>

1.1.1、  在最下面加入

<proxy balancer://cluster>

BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1

BalancerMember ajp://127.0.0.1:9003 loadfactor=1 route=jvm2

BalancerMember ajp://127.0.0.1:9004 loadfactor=1 route=jvm3

BalancerMember ajp://127.0.0.1:9005 loadfactor=1 route=jvm4

</proxy>

上面的四个BalancerMember成员是我们配置的tomcat集群。后面会说明的。

1.2、httpd-vhosts.conf设置

接下来进行虚拟主机的设置。APACHE的虚拟主机设置如下:

首先要修改 conf/httpd.conf找到(#Include conf/extra/httpd-vhosts.conf)

把注释去掉。

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

在文件(extra/httpd-vhosts.conf)最下面加入

<VirtualHost *:80>

         ServerAdmin 360293650@qq.com

         ServerName localhost

         ServerAlias localhost

         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On

         ProxyPassReverse / balancer://cluster/

</VirtualHost>

其中的域名和路径根据你自己情况设置

然后再设置TOMCAT虚拟主机

2 配置 tomcat

参数参考表

可先看后面的步骤在回头查看参考表,或者根据自己的端口使用情况自己定义端口的分配。

Tomcat

Service.

port

Engine.

jvmRoute

Connector.

port

Connector.

redirectPort

Receiver.

port

tomcat1

8005

jvm1

8009

8443

4000

tomcat2

8006

jvm2

9003

8444

4001

tomcat3

8007

jvm3

9004

8445

4002

tomcat4

8008

jvm4

9005

8446

4003

2.1.配置 server 的关闭

我们需要在一台机器上跑 4 个不同的 tomcat ,需要修改不同的 tomcat 的关闭口,避免出现端口被占用的情况。其中tomcat1用默认值,不修改。其他三个修改。在conf下的 server.xml 中找到 server, 将:

<Server port="8005" shutdown="SHUTDOWN">

改为

<Server port="XXXX" shutdown="SHUTDOWN">

XXXX 在这里表示不同的端口:我的其它三个 tomcat 分别使用的端口可查看参数参考表

2.2.配置 Engine

 把原来的配置注释掉,把下面一句去掉注释。并标明jvmRoute="jvm2".

<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2">        

以下是原来的配置。

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

其他(tomcat3和tomcat4)也要同样配置。注意:jvmRoute配置不要一样。

<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm3"> 

<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm4"> 

2.3.配置 Connector

原来的默认配置。

<!-- Define an AJP 1.3 Connector on port 8009 -->

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

这里是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。也可以用HTTP协议。大家注意它们是如何连接通信的,上面的红色部分(port="8009")就是连接的接口了。

把其他三个tomcat的<Connector port="XXX" />port分别改成与上面

<proxy balancer://cluster>

#与tomcat1对应,route与<Engine jvmRoute="jvm1">对应。

BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1

#与tomcat2对应,route与<Engine jvmRoute="jvm2">对应。

BalancerMember ajp://127.0.0.1:9003 loadfactor=1 route=jvm2

#与tomcat3对应,route与<Engine jvmRoute="jvm3">对应。

BalancerMember ajp://127.0.0.1:9004 loadfactor=1 route=jvm3

#与tomcat4对应,route与<Engine jvmRoute="jvm4">对应。

BalancerMember ajp://127.0.0.1:9005 loadfactor=1 route=jvm4

</proxy>

中的端口对应,tomcat1 的ajp端口port:9003. Tomcat2 的ajp端口port:9004。Tomcat3 的ajp端口port:9005.一定要与上面的一致。同时也要把redirectPort的值改成唯一的,确保四个tomcat的都不一样。可查看参数参考表

2.5.配置Cluster(每个tomcat中都要修改)

原来的配置。

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

修改为以下的代码:<Receiver port=”XX”/>port也要保证唯一性。

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

     <Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/>

     <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="auto" port="4000" selectorTimeout="100" 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"/>

         <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>

     </Channel>

     <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

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

</Cluster>

这个设置是主要用以tomcat的集群。

© 著作权归作者所有

流萤飘枫丶
粉丝 12
博文 176
码字总数 106070
作品 0
成都
程序员
私信 提问
linux下配置tomcat集群的负载均衡

linux下配置tomcat集群的负载均衡 一、首先了解下与集群相关的几个概念 集群: 集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群...

吴胜健
2014/10/28
0
0
Apache+Tomcat集群配置(转载)

http://www.iteye.com/topic/1017961 本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置。 准备环境 Apache Apache是http服...

QAllen
2012/04/23
34
0
Apache+Tomcat集群配置+session共享

本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置。 准备环境 Apache Apache是http服务器,我们利用其对Tomcat进行负载均衡...

涂孟超
2013/07/31
1K
5
Apache+Tomcat集群配置

本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置。 准备环境 Apache Apache是http服务器,我们利用其对Tomcat进行负载均衡...

嘻哈开发者
2015/07/02
130
1
Tomcat服务器集群与负载均衡实现

一、前言 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。另外一个常见的...

陶邦仁
2012/11/07
10K
4

没有更多内容

加载失败,请刷新页面

加载更多

DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
今天
3
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
今天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
今天
6
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
今天
6
0
Python机器学习之数据探索可视化库yellowbrick

背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维。陆续使用过plotly、seaborn,...

yeayee
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部