windows ApacheTomcat6集群和负载均衡.docx

上传人:b****6 文档编号:8439856 上传时间:2023-01-31 格式:DOCX 页数:12 大小:23.63KB
下载 相关 举报
windows ApacheTomcat6集群和负载均衡.docx_第1页
第1页 / 共12页
windows ApacheTomcat6集群和负载均衡.docx_第2页
第2页 / 共12页
windows ApacheTomcat6集群和负载均衡.docx_第3页
第3页 / 共12页
windows ApacheTomcat6集群和负载均衡.docx_第4页
第4页 / 共12页
windows ApacheTomcat6集群和负载均衡.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

windows ApacheTomcat6集群和负载均衡.docx

《windows ApacheTomcat6集群和负载均衡.docx》由会员分享,可在线阅读,更多相关《windows ApacheTomcat6集群和负载均衡.docx(12页珍藏版)》请在冰豆网上搜索。

windows ApacheTomcat6集群和负载均衡.docx

windowsApacheTomcat6集群和负载均衡

Tomcat6.0负载均衡策略

简述:

其实无论是分布式,数据缓存,还是负载均衡,无非就是改善网站的性能瓶颈,在网站源码不做优化的情况下,负载均衡可以说是最直接的手段了。

其实抛开这个名词,放开了说,就是希望用户能够分流,也就是说把所有用户的访问压力分散到多台服务器上,也可以分散到多个tomcat里,如果一台服务器装多个tomcat,那么即使是负载均衡,性能也提高不了太多,不过可以提高稳定性,即容错性。

当其中一个主tomcat当掉,其他的tomcat也可以补上,因为tomcat之间实现了Session共享。

待tomcat服务器修复后再次启动,就会自动拷贝所有session数据,然后加入集群。

这样就可以不间断的提供服务。

如果要真正从本质上提升性能,必须要分布到多台服务器。

同样tomcat也可以做到。

网上相关资料比较多,可以很方便的查到,但是质量不算高。

我希望可以通过这篇随笔,系统的总结。

本文的例子是同一台服务器上运行两个tomcat,做两个tomcat之间的负载均衡。

其实多台服务器各配置一个tomcat也可以,而且那样的话,可以使用安装版的tomcat,而不用是下文中的免安装的tomcat,而且tomcat端口配置也就不用修改了。

下文也会提到。

 

               tomcat的负载均衡需要apache服务器的加入来实现。

在进行配置之前请先卸载调已安装的tomcat,然后检查apache的版本。

我这次配置使用的是apache-tomcat-6.0.18免安装版本,我亲自测试后推断安装版的tomcat在同一台机子上会不能启动两个以上,可能是因为安装版的tomcat侵入了系统,导致即使在server.xml里修改了配置,还是会引起冲突。

所以我使用tomcat免安装版。

apache使用的是apache_2.2.11-win32-x86-no_ssl.msi。

如果版本低于2.2负载均衡的配置要有所不同,因为这个2.2.11和2.2.8版本集成了jk2等负载均衡工具,所以配置要简单许多。

别的版本我没有具体测试,有待考究。

这两个软件可以到官方网站下载。

 

目标

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

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

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

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

注:

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

前期准备工作

安装用的程序(前提保证已安装了JDK1.5以上的版本)

APAHCE2.2下载:

httpd-2.2.15-win32-x86-no_ssl.msi

TOMCAT6.0下载:

apache-tomcat-6.0.26.tar.gz,apache-tomcat-6.0.26.exe

安装过程

APAHCE安装目录:

D:

\Apache。

四个TOMCAT目录:

自行解压到(D:

\Tomcat集群服务器\)下。

分别为tomcat6.0,tomcat6.01,tomcat6.02,tomcat6.03

一、配置

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比较繁琐的配置了。

这里主要采用了代理的方法,就这么简单。

LoadModuleproxy_modulemodules/mod_proxy.so

LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so

LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so

LoadModuleproxy_http_modulemodules/mod_proxy_http.so

LoadModuleproxy_ajp_modulemodules/mod_proxy_ajp.so

LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so

再找到加上index.jsp修改成

DirectoryIndexindex.htmlindex.jsp

1.1.1、 在最下面加入

ProxyRequestsOff

//cluster>

BalancerMemberajp:

//127.0.0.1:

8009loadfactor=1route=jvm1

BalancerMemberajp:

//127.0.0.1:

9009loadfactor=1route=jvm2

BalancerMemberajp:

//127.0.0.1:

9001loadfactor=1route=jvm3

BalancerMemberajp:

//127.0.0.1:

9003loadfactor=1route=jvm4

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

后面会说明的。

1.2、httpd-vhosts.conf设置

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

APACHE的虚拟主机设置如下:

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

把注释去掉。

#Virtualhosts

Includeconf/extra/httpd-vhosts.conf

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

80>

ServerAdminweijie@

ServerNamelocalhost

ServerAliaslocalhost

ProxyPass/balancer:

//cluster/stickysession=jsessionidnofailover=On

ProxyPassReverse/balancer:

//cluster/

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

然后再设置TOMCAT虚拟主机

2配置tomcat

2.1.配置server的关闭

我们需要在一台机器上跑4个不同的tomcat,需要修改不同的tomcat的关闭口,避免出现端口被占用的情况。

其中tomcat6.0用默认值,不修改。

其他三个修改。

在tomcat6.01\conf,tomcat6.02\conf下和tomcat6.03\conf下的server.xml中找到server,将:

改为

XXXX在这里表示不同的端口:

我的其它三个tomcat分别使用9005,8006,9007

2.2.配置Engine

把原来的配置注释掉,把下面一句去掉注释。

并标明jvmRoute="jvm2".

以下是原来的配置。

---->

其他(tomcat6.02和tomcat6.03)也要同样配置。

注意:

jvmRoute配置不要一样。

2.3.配置Connector

原来的默认配置。

--DefineanAJP1.3Connectoronport8009-->

这里是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。

也可以用HTTP协议。

大家注意它们是如何连接通信的,上面的红色部分(port="8009")就是连接的接口了。

把其他三个tomcat的port分别改成与上面

//cluster>

#与tomcat6.0对应,route与对应。

BalancerMemberajp:

//127.0.0.1:

8009loadfactor=1route=jvm1

#与tomcat6.01对应,route与对应。

BalancerMemberajp:

//127.0.0.1:

9009loadfactor=1route=jvm2

#与tomcat6.02对应,route与对应。

BalancerMemberajp:

//127.0.0.1:

9001loadfactor=1route=jvm3

#与tomcat6.03对应,route与对应。

BalancerMemberajp:

//127.0.0.1:

9003loadfactor=1route=jvm4

中的端口对应,tomcat6.01的ajp端口port:

9009.tomcat6.02的ajp端口port:

9001。

tomcat6.03的ajp端口port:

9003.一定要与上面的一致。

同时也要把redirectPort的值改成唯一的,确保四个tomcat的都不一样。

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

原来的配置。

修改为以下的代码:

port也要保证唯一性。

expireSessionsOnShutdown="false"

notifyListenersOnReplication="true"

mapSendOptions="6"/>

--

expireSessionsOnShutdown="false"

notifyListenersOnReplication="true"/>

-->

address="228.0.0.4"

port="45564"

frequency="500"

dropTime="3000"/>

address="auto"

port="5001"

selectorTimeout="100"

maxThreads="6"/>

filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

tempDir="/tmp/war-temp/"

deployDir="/tmp/war-deploy/"

watchDir="/tmp/war-listen/"

watchEnabled="false"/>

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

--

expireSessionsOnShutdown="false"notifyListenersOnReplication="true"/>

-->

address="auto"port="5001"

selectorTimeout="100"maxThreads="6"/>

filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

3、启动服务,测试tomcat自带的例子

1、测试apache和tomcat协作。

先在每个tomcat中的\webapps\ROOT下的index.jsp下面加上以下的测试代码部分:

(X代表不同的tomcat的输出不同的信息),把index.html删除,以免影响测试效果。

在最后面的加上.即之间。

<%

System.out.println("tomcat6.0Xdealwithrequest");

%>

然后再通过http:

//127.0.0.1来访问一下,就会出现大家熟悉的猫猫。

然后再通过分别访问

http:

//127.0.0.1:

8080,http:

//127.0.0.1:

9080,http:

//127.0.0.1:

8081,http:

//127.0.0.1:

9002它们访问的内容和上面的http:

//127.0.0.1是一样的。

这样就说明apache和TOMCAT整合成功!

2、测试均衡器

通过http:

//127.0.0.1多次访问,要想看到真正的效果,必须用一些压力测试工具,可用微软MicrosoftWebApplicationStressTool进行简单压力测试,不然你靠不停刷新是体现不出来的,你只会在一个tomcat的控制台有输出结果。

只用用压力测试工具模拟大量用户同时访问,你会发现四个tomcat控制台均有打出控制信息,说明均衡器工作正常。

二:

配置

1:

配置Apache在启动时自动加载代理(proxy)

首先,在Apache安装目录下找到conf/httpd.conf文件,去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(proxy)模块。

    LoadModuleproxy_modulemodules/mod_proxy.so

    LoadModuleproxy_ajp_modulemodules/mod_proxy_ajp.so

    LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so

    LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so

    LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so

    LoadModuleproxy_http_modulemodules/mod_proxy_http.so

 

向下拉动文档找到节点,在DirectoryIndexindex.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。

继续下拉文档找到Includeconf/extra/httpd-vhosts.conf,去掉前面的注释符。

 2:

配置虚拟站点

打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上

80> 

         ServerAdmin 管理员邮箱

          ServerName localhost

         ServerAlias localhost 

         ProxyPass / balancer:

//sy/ stickysession=jsessionid nofailover=On 

         ProxyPassReverse / balancer:

//sy/ 

         ErrorLog "logs/sy-error.log"

         CustomLog "logs/sy-access.log" common

 3:

配置httpd.conf

然后回到httpd.conf,在文档最下面加上

ProxyRequests Off 

//sy> 

       BalancerMember ajp:

//127.0.0.1:

8009 loadfactor=1 route=jvm1

       BalancerMember ajp:

//127.0.0.1:

9009 loadfactor=1 route=jvm2

ProxyRequestsOff是告诉Apache需要使用反向代理,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。

loadfactor是负载因子,Ap

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1