tomcat集群与负载均衡配置.docx
- 文档编号:30735372
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:20
- 大小:207.04KB
tomcat集群与负载均衡配置.docx
《tomcat集群与负载均衡配置.docx》由会员分享,可在线阅读,更多相关《tomcat集群与负载均衡配置.docx(20页珍藏版)》请在冰豆网上搜索。
tomcat集群与负载均衡配置
Tomcat集群与负载均衡配置
第一种方式:
apache+tomcat+mod_jk
环境说明
Apache :
apache_2.0.55 1个
Tomcat:
apache-tomcat-5.5.17(zip版)2个
mod_jk:
:
mod_jk-apache-2.0.55.so 1个
第一部分:
负载均衡
负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理
1.安装apche,tomcat
http:
//httpd.apache.org/ 下载Apache2.0.55
http:
//tomcat.apache.org/download-55.cgi 下载tomcat5.5zip版本(解压即可,绿色版)
http:
//apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/ 下载mod_jk,注意和 apache版本匹配
按照jdk,我的路径为:
E:
\ide\apache\Apache2
解压两份Tomcat,路径分别为E:
\ide\tomcat1,E:
\ide\tomcat2
下载mod_jk
2.修改Apache配置文件http.conf
在apache安装目录下conf目录中找到http.conf
在文件最后加上下面一句话就可以了
include"E:
\ide\apache\Apache2\conf\mod_jk.conf"
2.http.conf同目录下新建mod_jk.conf文件,内容如下
#加载mod_jkModule
LoadModulejk_modulemodules/mod_jk-apache-2.0.55.so
#指定workers.properties文件路径
JkWorkersFileconf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount/*.jspcontroller
3.在http.conf同目录下新建workers.properties文件,内容如下
worker.list=controller,tomcat1,tomcat2 #server列表
#========tomcat1========
worker.tomcat1.port=8009 #ajp13端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1 #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcat2.port=9009 #ajp13端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1 #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat
worker.controller.sticky_session=1
4.修改tomcat配置文件server.xml
如果你在不同电脑上安装tomcat,tomcat的安装数量为一个,可以不必修改tomcat配置文件
我这里是在同一台电脑上安装两个tomcat,所以需要更改其中一个的设置
打开tomcat2/conf/server.xml文件
5.编写一个测试jsp
建立一个目录test.里面新建一个test.jsp,内容为
<%
System.out.println("===========================");
%>
把test放到tomcat1,tomcat2的webapps下
6.启动apache,tomcat1,tomcat2,进行测试
通过http:
//localhost/test/test.jsp 访问,查看tomcat1的窗口,可以看到打印了一行"=========="
再刷新一次,tomcat2也打印了一条,再刷新,可以看到请求会被tomcat1,tomcat2轮流处理,实现了负载均衡
第二部分,配置集群
只配置负载均衡还不行,还要session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat,集群内的tomcat都有相同的session
1.修改tomcat1,tomcat2的server.xml,将集群部分配置的在注释符删掉,并将tomcat2的4001端口改为4002,以避免与tomcat冲突,当然,如果是两台电脑,是不用改端口的,去掉注释符即可
2,修改测试项目test
修改test.jsp,内容如下
<%@pagecontentType="text/html;charset=GBK"%>
<%@pageimport="java.util.*"%>
ServerInfo:
<%
out.println(request.getLocalAddr()+":
"+request.getLocalPort()+"
");%>
<%
out.println("
ID"+session.getId()+"
");
//如果有新的Session属性设置
StringdataName=request.getParameter("dataName");
if(dataName!
=null&&dataName.length()>0){
StringdataValue=request.getParameter("dataValue");
session.setAttribute(dataName,dataValue);
}
out.print("Session列表");
Enumeratione=session.getAttributeNames();
while(e.hasMoreElements()){
Stringname=(String)e.nextElement();
Stringvalue=session.getAttribute(name).toString();
out.println(name+"="+value+"
");
System.out.println(name+"="+value);
}
%>
名称:
值:
然后在test新建WEB-INF目录,WEB-INF下新建web.xml,内容如下
xsi="http: //www.w3.org/2001/XMLSchema-instance"xsi: schemaLocation="version="2.4"> 注意: 在你的应用的web.xml加入 第二种方式: apache2.2(proxy)+Tomcat6.0.14/Tomcat6.0.20 Apache做为HttpServer,后面连接多个tomcat应用实例,并进行负载均衡 1.安装JDK6.0 2.安装Tomcat6.0.14和Tomcat6.0.20 3.下载并安装ApacheHTTPServer2.2.14,下载地址: 此处注意,如果你本机已经装了iis并且占用80端口,务必先在服务中将iis停止或禁用。 软件默认安装即可。 安装过程中设置NetworkDomain和ServerName为localhost,设置你的email地址,下方会让你选择onlyforthecurrentuser或forallusers。 默认选择forallusers。 这样Apache就会占用80端口,并且做为一个系统服务开机自运行。 安装完成之后,你在浏览器中输入http: //localhost,将会看到Apache的成功页面“Itworks! ” 4..配置Apache: 修改Apache配置文件\Apache2.2\conf\httpd.conf 1)将以下6个Module的注释去掉: 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 apache2.x以前配置apache和tomcat可能需要用到mod_jk.so进行apache和tomcat的链接。 apache2.x中集成了mod_jk.so的功能,只需简单的把上面6个module的注释打开。 2)在DirectoryIndex后面增加index.jsp,改完以后是: Xml代码 1. 2. DirectoryIndexindex.htmlindex.jsp 3. DirectoryIndexindex.htmlindex.jsp 3)在文件httpd.conf的最后加入以下内容: Xml代码 1.ProxyRequestsOff 2. //cluster> 3.BalancerMemberajp: //127.0.0.1: 8010loadfactor=1route=jvm1 4.BalancerMemberajp: //127.0.0.1: 8009loadfactor=1route=jvm2 5. ProxyRequestsOff //cluster> BalancerMemberajp: //127.0.0.1: 8010loadfactor=1route=jvm1 BalancerMemberajp: //127.0.0.1: 8009loadfactor=1route=jvm2 4)设置apache2.2虚拟主机 a>.先在conf\httpd.conf中引入配置虚拟主机的控制文件,将配置文件中默认注释掉的配置信息放开就可以了: #Virtualhosts Includeconf/extra/httpd-vhosts.conf b>.修改conf/extra/httpd-vhosts.conf文件,在最下面加入虚拟主机的配置信息 Xml代码 1. 80> 2. ServerAdminbjyzxxds@ 3. ServerNamelocalhost 4. ServerAliaslocalhost 5. ProxyPass/balancer: //cluster/stickysession=jsessionidnofailover=On 6. ProxyPassReverse/balancer: //cluster/ 7. 80> ServerAdminbjyzxxds@ ServerNamelocalhost ServerAliaslocalhost ProxyPass/balancer: //cluster/stickysession=jsessionidnofailover=On ProxyPassReverse/balancer: //cluster/ 其中的域名和路径的值依照安装apachehttpserver2.2时设置的域名和路径,保持一致即可。 5.配置tomcat 1).配置tomcat的启动和关闭端口 若是在同一台机器上同时运行多个tomcat,则需要修改tomcat的启动端口和关闭端口。 a>.启动端口修改: 将每个tomcat的server.xml文件作如下修改 Xml代码 1. 2. connectionTimeout="20000" 3. redirectPort="8443"/> connectionTimeout="20000" redirectPort="8443"/> 改为 Xml代码 1. 2. connectionTimeout="20000" 3. redirectPort="8443"/> connectionTimeout="20000" redirectPort="8443"/> 如果需要用到tomcat的共享线程池,其端口值也设置为xxxx,保持一致(线程池缺省是被注释掉的): Xml代码 1. 2. port="xxxx"protocol="HTTP/1.1" 3. connectionTimeout="20000" 4. redirectPort="8443"/> port="xxxx"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> b>.设置tomcat的关闭端口: 将 2).配置engine tomcat默认的engine配置为: 为了通过AJP来支持负载均衡,需要配置engine的jvmRoute属性。 将server.xml的默认engine配置注释掉,按给出的jvmRoute示例做如下配置: 注: 关于engine的name属性值的设置,不同版本的tomcat里面server.xml中给出的配置例子不同,比如tomcat6.0.14中的例子为: Xml代码 1. --YoushouldsetjvmRoutetosupportload-balancingviaAJPie: 2. 3. --> --YoushouldsetjvmRoutetosupportload-balancingviaAJPie: --> 一般按照tomcat中给的例子的name属性值设置即可(Catalina或Standalone或aaa,任意都行),新安装的tomcat在第一次启动后,将在tomcat的\conf\目录下创建一个与engine中name属性值一样的文件夹。 不过在我配置时发现6.0.14版本的tomcat在启动后并没有在\conf\目录下新建文件夹,而且查看启动日志也没发现异常。 6.0.14版的tomcat是安装exe的形式注册服务的,6.0.20版的tomcat是解压然后手动注册服务的,安装形式不同,可能这是这个地方存在差异的原因吧。 3)配置AJPConnector 将server.xml中的缺省配置 Xml代码 1. 修改为 Xml代码 1. port的值zzzz与apache2.2中的文件httpd.conf中 //cluster>之间配置的均衡器成员的端口一致,一一对应;上面在配置的jvmRoute的值(如jvm1)应该与httpd.conf中 //cluster>之间配置的均衡器成员的route属性的值一致,且必须唯一。 4)配置Cluster 打开tomcat的server.xml,默认的Cluster配置如下,缺省被注释掉了: 如何配置 Xml代码 channelSendOptions="6"> expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/> -- expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> -->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- tomcat 集群 负载 均衡 配置