apache与tomcat负载集群的3种方法
负载均衡与集群

负载均衡与集群一:软件集群1:WebLogic集群首先要对Weblogic的内部有一个大概的了解,什么是 Domain,Server,Machine,Cluster。
DomainDomain 是WebLogic Server 实例的基本管理单元。
所谓Domain就是,由配置为Admin Server 的WebLogic Server 实例管理的逻辑单元,这个单元是有所有相关资源的集合。
ServerServer 是一个相对独立的,为实现某些特定功能而结合在一起的单元。
Machine Machine 是可以对应到服务器所在的物理硬件,可以是Unix 或non-Unix 类型,可以用来远程管理和监控,用于加强fail over 管理。
ClusterCluster 也是一个逻辑概念,用来分组用途相同的服务器实例,一个域中可以有多个集群。
集群用来实现负载均衡和容错。
Domain and Server 的关系一个Domain 可以包含一个或多个WebLogic Server 实例,甚至是Server 集群。
一个 Domain 中有一个且只能有一个Server 担任管理Server 的功能,其它的Server 具体实现一个特定的逻辑功能。
配置集群应用的必要条件a) 集群中的所有Server 必须位于同一网段,并且必须是IP 广播(UDP)可到达的 b) 集群中的所有Server 必须使用相同的版本,包括Service Packc) 集群中的Server 必须使用永久的静态IP 地址。
动态IP 地址分配不能用于集群环境。
如果服务器位于防火墙后面,而客户机位于防火墙外面,那么服务器必须有公共的静态IP 地址,只有这样,客户端才能访问服务器d) 要以CLUSTER 方式运行,必须有包含CLUSTER 许可的LICENSE 才行(从Oracle 网站上下载的最新版本已经包含了此许可,可进行Cluster 配置)1.1 WebLogic 单机集群 1.1.1 简介单机集群这种架构将所有的 Web 应用以及相关的服务应用全部置于集群中的单一WLS(WebLogic Server)实例中,这种架构的优势在于:易于管理灵活的负载平衡机制更强的安全控制1.1.2 配置安装 WebLogic 11g(10.3.2)在实施集群之前都必须有个规划,比如以下例子:上述具体的安装方法见手册:Microsoft Word 文档WebLogic集群安装.docx单服务器版本。
网络应用程序的负载平衡问题

网络应用程序的负载平衡问题摘要:在现今网络时代,通过网络寻找信息的需求量越来越大,在网络节点上的服务器需要有相当的负载能力,而且越来越多的情况下还需要通过几台服务器来共同完成对需要的应答任务。
介绍了一种多服务器共同负载并平衡工作的技术——负载平衡。
首先概要性地描述了负载平衡的原理,并按照软件应用的执行过程,从软件层次至硬件平台,自上而下的顺序将常见的负载平衡方法分为软件级负载平衡、网络级负载平衡、硬件级负载平衡,并简明扼要地说明了各种负载平衡的使用范围、实现代价、可扩展性与及总体优缺点。
关键词:负载平衡;DNS Apache/Tomcat;网络应用;会话状态管理1问题的提出网络应用建立在网络服务器(Web Server)上,供客户端(Web Client)连接访问,服务器接收到客户端请求后处理业务逻辑,在此阶段网络应用通常会访问数据库,然后组成相应网络应答(Response)返回给客户端。
如果只架设一台网络服务器,在客户数量较少,请求不繁忙的情况下系统能够满足需求,当客户数量骤增,单个客户的请求也相应变多时,一台服务器就不能满足实时处理需求,就会造成系统速度减慢,客户抱怨,甚至系统崩溃。
另一方面,如果只有一台服务器提供服务,一旦该服务器瘫痪或者进行关闭维护,则整个系统就不能提供服务。
第一个问题反映的是网络应用的可扩展性需求,第二个问题反映的是网络应用的冗余可靠性要求。
这两个问题在当前多媒体大容量的视频点播网站中特别值得研究。
负载平衡技术的提出就能够很好地解决网络扩展性、冗余可靠性的要求。
2负载平衡的相关概念负载平衡器是由一组服务器组成的(集群)。
在集群中各个计算机上同时运行相同的网络应用程序,而对外界客户端来说,负载平衡器提供的服务就好像是由一台网络服务器提供的一样。
而负载平衡器将来自客户端的请求根据不同算法分配到集群中具体某个节点去,从而优化了系统性能。
负载平衡器使用不同的算法控制通信流量。
这些算法用于以智能地分散负载,最大限度地利用群集内的所有服务器。
Tomcat集群与负载均衡

Tomcat集群与负载均衡(转载)在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。
另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。
不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。
所以,这时候我们就需要用到集群这一门技术了。
在进入集群系统架构探讨之前,先定义一些专门术语:1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。
应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。
如一个提供Web服务的集群,对外界来看是一个大Web服务器。
不过集群的节点也可以单独提供服务。
3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。
集群系统(Cluster)主要解决下面几个问题:高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。
负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
目前比较常用的负载均衡技术主要有:1. 基于DNS的负载均衡通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。
Apache与Tomcat协同配置参考

Apache与Tomcat协同配置参考在按照本文档进行配置之前,假设Tomcat和Apache均已安装成功。
1.优化tomcat与apache协同端口通常情况下,tomcat的配置文件server.xml中并没有对apache与tomcat的连接池进行配置,建议按照如下方法配置:<Connector port="8219"maxThreads="512"minSpareThreads="256"maxSpareThreads="512"acceptCount="512"connectionTimeout="20000"disableUploadTimeout="true"enableLookups="false"redirectPort="8443"debug="0"protocol="AJP/1.3"/>主要参数意义:minSpareThreads:最小空闲连接线程数,服务器启动时创建的处理请求的线程数,用于提高系统处理性能,默认值为10maxSpareThreads:最大连接线程数,即:并发处理的最大请求数,默认值为75acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右,在Linux中可通过修改/etc/security/limits.conf中的参数,增加如下配置* soft nofile 163840* hard nofile 163840完整Tomcat配置server.xml文件参见附件server.xml。
Tomcat负载均衡部署手册(Apache2.4)

Tomcat负责均衡部署一、前期准备JDK:已安装JDK1.5以上的版本Apache下载:Apache2.2或以上版本Tomcat下载:Tomcat6.0或以上版本二、安装过程Apache安装目录:D:/Apache。
TOMCAT安装目录:如果两个Tomcat在同一台机器上自行解压到(D:/TomcatCluster/)下,分别为tomcat6-a,tomcat6-b;如果不在同一台机器上可分别解压到D:/根目录下。
三、配置1.Apache配置1.1h ttpd.conf配置修改Apache的配置文件…/Apache/conf/httpd.conf:将以下Module的注释去掉LoadModuleproxy_module modules/mod_proxy.soLoadModuleproxy_connect_module modules/mod_proxy_connect.soLoadModuleproxy_ftp_module modules/mod_proxy_ftp.soLoadModuleproxy_http_module modules/mod_proxy_http.soLoadModuleproxy_ajp_module modules/mod_proxy_ajp.soLoadModuleproxy_balancer_module modules/mod_proxy_balancer.so再找到<IfModuledir_module>DirectoryIndex index.html</IfModule>加上index.jsp修改成<IfModuledir_module>DirectoryIndex index.html index.jsp</IfModule>此处添加index.jsp主要为了配置完成以后利用index.jsp输出测试信息!在httpd.conf最后面加入ProxyRequests Off<proxy balancer://cluster>BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2 </proxy>上面的两个BalancerMember成员是我们配置的tomcat集群,IP地址及端口号根据实际情况修改为两个tomcat服务器的IP及端口号。
Linux 环境下负载均衡集群的实现

Linux 环境下负载均衡集群的实现李欧;陈燕;李桃迎【期刊名称】《计算机与现代化》【年(卷),期】2014(0)9【摘要】负载均衡集群能够在多台网络设备之间合理分配业务量,使设备充分发挥其处理能力,得到了广泛应用。
Tomcat与Apache都可以作为独立运行的服务器来使用,但它们单独使用时存在一定的局限性。
为了提高服务器的性能,本文将Tomcat与Apache在Linux环境下进行集成,分析负载均衡集群的架构,详细阐述方案的实现过程。
测试结果表明按照该过程能够实现负载均衡集群。
%Load balancing cluster can reasonably allocate traffic among multiple network devices , enable the device to its full pro-cessing capacity , which has been widely applied .Tomcat and Apache can be used as stand-alone server , however , some limita-tions exist when they are used alone .To improve the performance of the server , the article integrated Tomcat with Apache based on Linux OS, analyzed the load balancing cluster architecture , and described the specific implementation program .Test results show that the load balancing cluster can be achieved according to the process .【总页数】4页(P29-32)【作者】李欧;陈燕;李桃迎【作者单位】大连海事大学交通运输管理学院,辽宁大连 116026;大连海事大学交通运输管理学院,辽宁大连 116026;大连海事大学交通运输管理学院,辽宁大连 116026【正文语种】中文【中图分类】TP393【相关文献】1.Linux下实现集群负载均衡 [J], 耿莉2.Linux环境下基于策略路由实现多线路负载均衡 [J], 方琪;刘吉强;韩臻3.Linux下的负载均衡集群LVS实现分析与测试 [J], 郑灵翔;刘君尧;陈辉煌4.基于Linux PC集群负载均衡的研究与实现 [J], 修长虹;赵云飞;宋继侠5.基于红帽linux集群实现高效的虚拟负载均衡性能 [J], 邹洪富因版权原因,仅展示原文概要,查看原文内容请购买。
Apache与tomcat的整合、负载均衡和加入启动和系统服务

Apache与tomcat的整合及负载均衡系统环境:Windows Server 2021 R2 SP1虚拟机环境:Red Hat Enterprise Linux Server release 5.4 (Tikanga) X64安装软件版本:JDK:1.6.0_19 Tomcat: Apache: JK:实施步调:一、安装软件。
1tar -xz2345./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most--with-mpm=worker6make7make install89/jk/native/1011./configure --with-apxs=/usr/local/apache2/bin/apxs12make13make install二、配置整合及负载均衡1 cp / /usr/local/apache2/modules2配置环境变量vi /etc/profile在文本末尾参加以下内容JAVA_HOME=JDK安装路径CATALINA_HOME=tomcat安装路径CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CATALINA_HOME CLASSPATH PATH3应用初始的环境变量source /etc/profile4点窜以下几处而且在末尾加上:Include /usr/local/apache2/conf/ 5添加及设置vi /usr/local/apache2/增加以下内容#加载mod_jk ModuleJkLogLevel info载分配控制制器JkMount /* lb6添加及设置vi /usr/local/apache2/conf/添加以下内容worker.list = lb,tomcat1,tomcat2#server 列表#========tomcat1========worker.tomcat1.port=8009#ajp13 端标语,在tomcat下server.xml配置,默认8009#tomcat的主机地址,如不为本机,请填写ip地址worker.tomcat1.type=ajp13worker.tomcat1.lbfactor = 1#server的加权比重,值越高,分得的请求越多#========tomcat2========worker.tomcat2.port=8009#ajp13 端标语,在tomcat下server.xml配置,默认8009#tomcat的主机地址,如不为本机,请填写ip地址worker.tomcat2.type=ajp13worker.tomcat2.lbfactor = 1#server的加权比重,值越高,分得的请求越多#========controller,负载均衡控制器========worker.lb.type=lbworker.lb.balanced_workers=tomcat1,tomcat2#指定分担请求的tomcatworker.lb.sticky_session=17、将JSP文件放入/usr/local/tomcat/webapps/ROOT8 启动apache和tomcat8 翻开浏览器输入就是这么简单。
apach+tomcat系统整合说明

# ------------------------
worker.tomcat2.port=8011
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=10
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout---------
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=tomcat1,tomcat2
worker.loadbalancer.sticky_session=1
JkRequestLogFormat "%w %V %T"
JkMount /*.jsp ajp13w
JkMount /servlet/* ajp13w
JkMount /*.servlet ajp13w
JkMount /*.do ajp13w
JkMount /admin/* ajp13w
####### Defining a worker named worker1 and of type ajp13
worker.list=worker1
####### Set properties for worker1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
花了两天时间学习apache与tomcat的集成方法,现在把学习成果记录下来。
apache与tomcat负载集群集成方法有3种jk、jk_proxy、http_proxy本次集成使用的软件版本:apache:httpd-2.2.17-win32-x86-no_ssl.msitomcat:apache-tomcat-6.0.20.zipjdk:jdk-6u14-windows-i586.exe本次测试是1个apache集成两个tomcat。
安装apache http server省略,访问地址为http://127.0.0.1:8081安装tomcat,解压apache-tomcat-6.0.20.zip,测试时我是把两个tomcat分开放在不同的虚拟机,其中一个是和apache同一台虚拟机。
两个tomcat分别命名为worker2和worker3先说tomcat.worker2的配置:server.xml(1)配置http监听端口,这里端口设为8079,该步骤非必要,只要不冲突就行了。
<Connector port="8079"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"/>(2)配置AJP监听端口,这里端口设为8077,该步骤非必要,只要不冲突就行了。
<Connector port="8077"protocol="AJP/1.3"redirectPort="8443"/>(3)配置服务器标识,这里标识名配置为:worker2,添加jvmRoute="worker2",该步骤必须。
<Engine name="Catalina"defaultHost="localhost"jvmRoute="worker2">在Engine节点启用集群配置,只需去掉Cluster节点前的注释就行了,该步骤必须,配置了集群才能实现Session复制,如果只有一个集群,只按我下边的配置就行了,如果多个集群,则不能按此配置,tomcat服务器内的帮助文档/docs/cluster-howto.html,/docs/config/cluster.html有介绍,需要的可以参考下。
<Engine name="Catalina"defaultHost="localhost"jvmRoute="worker2"><Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>要实现session复制,还需要在context.xml添加属性distributable="true",如下:<Context distributable="true">如果不想在context.xml中添加distributable="true",还有另一方法是在应用程序的web.xml 中添加<distributeable/>,不过这方法我没有测试。
配置完成,访问地址为:http://127.0.0.1:8079另一个tomcat.worker3的配置server.xml<Connector port="8078"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"/><Connector port="9009"protocol="AJP/1.3"redirectPort="8443"/><Engine name="Catalina"defaultHost="localhost"jvmRoute="worker3"><Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>context.xml配置tomcat.worker2一样。
配置完成,访问地址为:http://127.0.0.1:8078注意:如果两个tomcat是放在同一台机内,server.xml可能还需要修改其它端口,请确认两个tomcat能正常启动。
在tomcat.worker2和tomcat.worker3的webapps文件夹添加同样的测试文件test"test.jsp<html><head><title>helloapp</title></head><body><%System.out.println("call test.jsp");%>Sessi onID: <%=session.getId() %></body></html>访问http://127.0.0.1:8078/test/test.jsp和http://127.0.0.1:8079/test/test.jsp,确保能成功访问。
现在开始apache和tomcat的不同方式集成1、jk方式集成下载mod_jk-1.2.31-httpd-2.2.3.so,请下载合适的mod_jk版本,改名为mod_jk.so放进modules 文件夹内修改conf/httpd.conf配置LoadModule jk_module modules/mod_jk.soJkWorkersFile conf/workers.propertiesJkLogFile logs/mod_jk.logJkLogLevel debugJkMount /*.do loadbalancerJkMount /*.jsp loadbalancer增加conf/workers.properties文件,添加内容worker.list=loadbalancerworker.worker2.port=8077 #ajp的监听端口worker.worker2.host=108.88.3.105worker.worker2.type=ajp13worker.worker2.lbfactor=1worker.worker3.port=9009worker.worker3.host=127.0.0.1worker.worker3.type=ajp13worker.worker3.lbfactor=1worker.loadbalancer.type=lbworker.loadbalancer.balance_workers=worker2,worker3 #这里在的worker2、worker3为需要与上边tomcat 设置的别名一致worker.loadbalancer.sticky_sessi on=1配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。
2、ajp_proxy去掉httpd.conf文件中下面内容的注释(删掉#号),开启下边的配置Include conf/extra/httpd-vhosts.confLoadModule proxy_module modules/mod_proxy.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.soLoadModule proxy_balancer_module modules/mod_proxy_balancer.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule proxy_ftp_module modules/mod_proxy_ftp.soLoadModule proxy_http_module modules/mod_proxy_http.so注意:除了mod_proxy.so,mod_proxy_balancer.so,mod_proxy_connect.so如果是采用ajp_proxy,需要加载mod_proxy_ajp.so这个模块;如果是采用http_proxy,需要加载mod_proxy_http.so这个模块;httpd.conf,删除刚才jk方式的配置内容,增加下边的配置ProxyRequests Off<proxy balancer://loadbalancer>BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=worker3BalancerMember ajp://108.88.3.105:8077 loadfactor=1 route=worker2</proxy>conf/extra/httpd-vhosts.conf增加配置<V irtualHost *:8081>ServerAdmin xxxx@ServerName localhostServerAlias localhostProxyPass / balancer://loadbalancer/ stickysessi on=j sessionid nofailover=OnProxyPassReverse / balancer://loadbalancer/ErrorLog "logs/loadbalancer-error.log"CustomLog "l ogs/loadbalancer-access.log" common</VirtualHost>配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。
3、http_proxyhttp_proxy的配置与ajp_proxy类似,修改方法2的httpd.conf配置如下,其它不变ProxyRequests Off<proxy balancer://loadbalancer>BalancerMember http://127.0.0.1:8078 loadfactor=1 route=worker3BalancerMember http://108.88.3.105:8079 loadfactor=1 route=worker2</proxy>配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。