Apache tomcat负载均衡的入门配置详解
APACHE 2.2.4与TOMCAT6.0.14整合教程
APACHE 2.2.4+TOMCAT6.0.14配置负载均衡的网站目标:使用 apache 和 tomcat 配置一个可以应用的 web 网站,要达到以下要求:1、 Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均衡。
2、为系统设定 Session 超时时间,包括 Apache 和 tomcat3、为系统屏蔽文件列表,包括 Apache 和 tomcat注:本例程以一台机器为例子,即同一台机器上装一个apache+2个Tomcat。
一、前期准备工作:安装用的程序APAHCE 2.2.4下载:apache_2.2.4-win32-x86-no_ssl.msiTOMCAT6.0.14下载:apache-tomcat-6.0.14.zip直接解压。
APACHE-tomcat连接器:mod_jk-apache-2.2.4.so远程下载:/Apache/tomcat/tomcat-connectors/jk/bina ries/win32/jk-1.2.23/mod_jk-apache-2.2.4.so二、安装过程APAHCE安装目录:C:\Program Files\Apache Software Foundation\Apache2.2,下称dirApache。
两个TOMCAT目录:自行解压到dirTOMCATA和dirTOMCATB即可。
这两个安装过程就不详细说明了。
mod_jk-apache-2.2.4.so复制到APACHE安装目录下的modules目录(dirApache\modules)。
三、配置1、Apache配置1.1、 workers.properties配置在dirApache\conf下新建一个workers.properties文件,用记事本打开workers.properties文件,写入如下内容:代码:worker.list=loadbalancerworker.loadbalancer.type=lbworker.loadbalancer.balanced_workers=tomcat2,tomcat1worker.loadbalancer.sticky_session=trueworker.loadbalancer.sticky_session_force=true# Set properties for tomcat1 (ajp13)worker.tomcat1.type=ajp13worker.tomcat1.host=127.0.0.1worker.tomcat1.port=8019worker.tomcat1.lbfactor=20worker.tomcat1.cachesize=1000worker.tomcat1.cache_timeout=600worker.tomcat1.socket_keepalive=1#worker.tomcat1.reclycle_timeout=300worker.tomcat1.local_worker=1worker.tomcat1.socket_timeout=0worker.tomcat1.retries=3# Set properties for tomcat2(ajp13)worker.tomcat2.type=ajp13worker.tomcat2.host=127.0.0.1worker.tomcat2.port=8029worker.tomcat2.lbfactor=80worker.tomcat2.cachesize=1000worker.tomcat2.cache_timeout=600worker.tomcat2.socket_keepalive=1#worker.tomcat2.reclycle_timeout=300worker.tomcat2.local_worker=1worker.tomcat2.socket_timeout=0worker.tomcat2.retries=3其中worker.tomcat1.type =ajp13和worker.tomcat2.type=ajp13这个要记住,要和Tomcat下配置对应。
tomcat配置文件详解
tomcat配置文件详解(一):目录结构tomcat的目录结构如下:目录名简介bin 存放启动和关闭tomcat脚本conf 包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xmlwork 存放jsp编译后产生的class文件webapp 存放应用程序示例,以后要部署的应用程序也要放到此目录logs 存放日志文件lib/japser/common 这三个目录主要存放tomcat所需的jar文件(二):server.xml配置简介下面我们将讲述这个文件中的基本配置信息,更具体的配置信息见tomcat的文档元素名属性解释server port 指定一个端口,这个端口负责监听关闭tomcat的请求shutdown 指定向端口发送的命令字符串service name 指定service的名字Connector (表示客户端和service之间的连接) port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求minProcessors 服务器启动时创建的处理请求的线程数maxProcessors 最大可以创建的处理请求的线程数enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理connectionTimeout指定超时的时间数(以毫秒为单位)Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求) defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的Context (表示一个web应用程序,通常为WAR文件,关于WAR 的具体信息见servlet规范) docBase 应用程序的路径或者是WAR文件存放的路径path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/**** reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序host (表示一个虚拟主机) name 指定主机名appBase 应用程序基本目录,即存放应用程序的目录unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR 文件中运行应用程序Logger (表示日志,调试和错误信息) className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口prefix 指定log文件的前缀suffix 指定log文件的后缀timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt Realm (表示存放用户名,密码及role的数据库) className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样) className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息directory 指定log文件存放的位置pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。
Tomcat集群与负载均衡
Tomcat集群与负载均衡(转载)在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。
另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。
不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。
所以,这时候我们就需要用到集群这一门技术了。
在进入集群系统架构探讨之前,先定义一些专门术语:1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。
应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。
如一个提供Web服务的集群,对外界来看是一个大Web服务器。
不过集群的节点也可以单独提供服务。
3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。
集群系统(Cluster)主要解决下面几个问题:高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。
负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
目前比较常用的负载均衡技术主要有:1. 基于DNS的负载均衡通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。
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及端口号。
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 翻开浏览器输入就是这么简单。
负载均衡配置方法
负载均衡配置方法在现代的计算机系统中,负载均衡是保证高性能和可靠性的重要因素之一。
通过合理的负载均衡配置,可以最大程度地利用系统资源,提高系统响应速度和可扩展性。
本文将介绍一些常见的负载均衡配置方法,帮助您更好地理解和应用负载均衡技术。
一、负载均衡概述负载均衡是一种通过在多个服务器之间分配工作负载,以达到提高系统性能和可用性的技术。
它可以确保每台服务器都能够平均分担任务,避免单个服务器过载,从而提高系统的整体性能。
二、硬件负载均衡配置方法硬件负载均衡通常通过专门的硬件设备来实现,如负载均衡器。
以下是一些常用的硬件负载均衡配置方法:1. 服务器冗余:在配置硬件负载均衡之前,建议先将系统中的服务器设置为冗余模式。
这意味着将每个功能模块配置为备份模式,以确保在故障发生时可以无缝切换到备份服务器。
2. 负载均衡器选择:根据实际需求选择适当的负载均衡器。
常见的负载均衡器有硬件负载均衡器和软件负载均衡器。
硬件负载均衡器通常具有更高的性能和可靠性,但价格较高。
软件负载均衡器则更加灵活和经济实惠。
3. 负载均衡算法选择:负载均衡器通常使用一些算法来决定如何将任务分配给服务器。
常见的算法有轮询、最小连接和最少响应时间等。
根据应用场景的特点选择合适的负载均衡算法,以确保任务能够平均分配给服务器,并提高整体性能。
4. 健康检查和故障恢复:负载均衡器通常会周期性地检查服务器的健康状态,以便及时发现故障和性能问题。
一旦发现故障,负载均衡器将自动将任务重新分配给其他正常工作的服务器,并通过故障恢复机制尽快恢复故障服务器的功能。
三、软件负载均衡配置方法除了硬件负载均衡器,还可以使用软件来实现负载均衡。
以下是一些常用的软件负载均衡配置方法:1. 反向代理:通过将负载均衡器配置为反向代理服务器,可以将客户端的请求分发给多个后端服务器。
反向代理服务器可以根据不同的策略选择请求目标服务器,并将响应返回给客户端。
2. DNS负载均衡:通过在DNS服务器中配置多个IP地址,可以将客户端的请求平均分配给这些IP地址,并最终分发到不同的服务器。
服务器负载均衡方案
服务器负载均衡方案第1篇服务器负载均衡方案一、背景随着互联网的迅速发展,业务量不断攀升,服务器承受的压力越来越大。
为保障业务连续性和用户体验,提高服务器资源利用率,降低单点故障风险,有必要引入服务器负载均衡技术。
本方案旨在制定一套合法合规的服务器负载均衡方案,确保业务稳定、高效运行。
二、目标1. 提高服务器资源利用率,降低硬件投资成本。
2. 确保业务连续性,提高系统可用性。
3. 提升用户体验,降低访问延迟。
4. 合法合规,确保数据安全。
三、方案设计1. 负载均衡器选型根据业务需求,选择合适的负载均衡器。
本方案推荐使用硬件负载均衡器,如F5、深信服等品牌。
硬件负载均衡器具有高性能、高可靠性、易于管理等优点,适用于大型企业及重要业务场景。
2. 负载均衡策略(1)轮询(Round Robin)将客户端请求按顺序分配到后端服务器,适用于服务器性能相近的场景。
(2)最小连接数(Least Connections)将客户端请求分配给当前连接数最少的服务器,适用于服务器性能不均的场景。
(3)源地址哈希(Source Hash)根据客户端IP地址进行哈希计算,将请求分配到固定的服务器,适用于有状态业务场景。
(4)权重(Weight)为每台服务器分配不同的权重,根据权重比例分配请求,适用于服务器性能差异较大的场景。
3. 健康检查负载均衡器定期对后端服务器进行健康检查,确保服务器正常运行。
检查方式包括:TCP连接、HTTP请求等。
当检测到服务器故障时,自动将其从负载均衡列表中剔除,待服务器恢复正常后,重新加入负载均衡列表。
4. 会话保持为保持用户会话状态,负载均衡器支持会话保持功能。
可根据业务需求选择以下方式:(1)源地址保持:根据客户端IP地址保持会话。
(2)Cookie保持:根据客户端Cookie信息保持会话。
5. 安全防护(1)负载均衡器支持SSL加密,确保数据传输安全。
(2)负载均衡器支持防火墙功能,对非法请求进行过滤,防止恶意攻击。
tomcat常用的调优参数
tomcat常用的调优参数Tomcat常用的调优参数Tomcat是一个开源的Java Servlet容器,广泛应用于Java Web 应用程序的部署和运行。
为了提高Tomcat的性能和稳定性,我们可以通过调优参数来优化其配置。
本文将介绍一些常用的Tomcat 调优参数,帮助您更好地配置和优化T omcat服务器。
1. 内存设置- -Xms: 设置JVM的初始堆大小,建议设置为物理内存的1/4或1/3。
- -Xmx: 设置JVM的最大堆大小,建议设置为物理内存的1/2或2/3。
- -XX:MaxPermSize: 设置JVM的永久代大小,建议设置为256MB或512MB。
- -XX:MaxMetaspaceSize: 设置JVM的元空间大小,建议设置为256MB或512MB。
2. 线程设置- maxThreads: 设置Tomcat的最大线程数,建议根据服务器的硬件配置和并发请求数进行调整。
- acceptCount: 设置Tomcat接受请求的队列大小,建议设置为200或300。
- connectionTimeout: 设置Tomcat的连接超时时间,建议设置为30秒或60秒。
3. 连接器设置- protocol: 设置连接器的协议,常用的有HTTP/1.1和AJP/1.3。
- port: 设置连接器的监听端口,建议使用80端口作为HTTP连接器的默认端口。
- maxKeepAliveRequests: 设置每个Keep-Alive连接的最大请求数,建议设置为100或200。
- keepAliveTimeout: 设置Keep-Alive连接的超时时间,建议设置为5秒或10秒。
4. 缓存设置- cacheSize: 设置Tomcat的静态文件缓存大小,建议根据静态文件的数量和大小进行调整。
- cacheTTL: 设置静态文件缓存的过期时间,建议设置为1小时或更长。
- cacheObjectMaxSize: 设置缓存对象的最大大小,建议根据缓存对象的平均大小进行调整。
Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册
Linux平台Apache双机高可用集群+ Tomcat负载均衡集群配置手册在这个配置手册中,使用的操作系统和软件清单如下:操作系统:RedHat Enterprise Linux AS4 U4 64bit(安装时最好选择完全安装)软件:jdk-1_5_0_15-linux-amd64.binTomcat5.5.26httpd-2.0.63.tar.gzjakarta-tomcat-connectors-jk2-src-current.tar.gzipvsadm-1.24.tar.gzlibnet.tar.gzheartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm因为是linux操作系统,所以在安装软件时请使用对应自己操作系统内核的软件,这是整个集群成功的第一步。
本配置手册中的软件都是对应RedHat Enterprise Linux AS4 U4 64bit 这个版本的软件。
jdk-1_5_0_15-linux-amd64.binJAVA环境包使用的是64位1.5版Tomcat版本为公司指定的5.5版本Apache为2.0.63版jakarta-tomcat-connectors-jk2-src-current.tar.gz是连接Apache和Tomcat的连接插件,具体可以去Tomcat网站上查找下载ipvsadm-1.24.tar.gzlibnet.tar.gz这两个是用于2台Apache服务器虚拟一个IP地址使用heartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm这3个软件是用于2台Apache服务器之间的心跳检测结构图Apache1以以以以以Tomcat1Tomcat2Apache22台Tomcat服务器使用Tomcat软件可以自己做集群,2台Apache服务器需要其他的软件实现虚拟服务器功能,工作站访问虚拟IP地址访问2台Apache服务器,再通过Apache服务器访问Tomcat服务器第3 页总13 页1.安装JAVA环境包1)输入命令:./ jdk-1_5_0_15-linux-amd64.bin执行完毕后,会在当前目录下生成一个JDK-1.5.0_15的文件夹2)在 /usr/local/下新建一个名字为JAVA文件夹,将个JDK-1.5.0_15的文件夹拷入到该文件夹下3)设置环境变量。
apache负载均衡
模拟环境部署文档一、本部署文档所使用软件列表文件服务器群组负载均衡服务器:apache2.2文件服务器群组文件服务器:apache2.2Java web应用服务器群组负载均衡服务器:apache2.2Java web应用服务器群组应用服务器:tomcat5.5地市文件服务器:tomcat5.5二、apache负载均衡apache文件服务器群组配置(在服务器192.168.2.241)Apache实例明细:负载均衡apache:名称<apacheB>文件服务apache:名称<apacheFile1>,<apacheFile2>1、安装apache,作为主服务器(apacheB),假设安装路径在E:\apche2.2,http监听端口80,2、拷贝两份apache文件目录(即E:\apche2.2),分别命名为apacheFile1和apacheFile2,用作文件服务器。
3、修改apacheFiel1目录下的conf中的httpd.conf,将配置文件中的路径都改为E:\apacheFile1,将文件中的Listen 80和ServerName localhost:80这两个地方修改为1010,web应用路径E:\apache\web\main4、修改E:\apacheFile1\htdocs\index.html,将内容改为It works! 1010以便之后测试时区分。
5、运行cmd命令,到E:\apacheFile1\bin目录下,执行httpd -k install -n"apacheFile1" -f " E:\apacheFile1\conf\httpd.conf",这样就在系统在注册了名为“apacheFile1”的服务6、对apacheFile2目录做第3、4、5步的类似操作,将端口修改为2020,新建服务apacheFile27、修改主服务器(apacheB)配置文件E:\apche2.2\conf\httpd.conf,将其中的#监测主服务器状态插件LoadModule status_module modules/mod_status.so#负载均衡插件LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 前的#注释符去掉并在文件最后增加以下内容#停止正向代理功能ProxyRequests Off#不进行反向代理的路径ProxyPass /server-status !ProxyPass /balancer-manager !ProxyPass / balancer://file/ stickysession=jsessionid nofailover=On<proxy balancer://file/>BalancerMember http://localhost:1010 loadfactor=1BalancerMember http://localhost:2020 loadfactor=1</proxy>#监测主服务器状态<Location /server-status>SetHandler server-statusOrder Deny,AllowDeny from allAllow from all</Location>#监测负载均衡状态<Location /balancer-manager>SetHandler balancer-managerOrder Deny,AllowDeny from allAllow from all</Location>8、运行apache2.2下的bin目录中的ApacheMonitor.exe,分别运行apache2.2,apacheFile1,apacheFile2三个服务9、测试A、打开一个浏览器窗口,访问http://localhost,如果看到输出It works!1010或者It works! 2020,则表示负载均衡配置成功,不断地刷新页面,服务器会轮流将请求转发给1010和2020负载服务器B、访问http://localhost/ server-status可以查看主服务器运行状态C、访问http://localhost/ balancer-manager可以查看各节点的工作运行状态三、文件服务器的压缩响应说明:文件服务使用apache的反向代理负载均衡,用户发出的请求,通过apacheB负载均衡发送请求给apacheFile1或者apacheFile2, apacheFile1或apacheFile2响应数据到apacheB, apacheB进行后续的响应发送数据给客户端,居于此,我们在apacheFile1,apacheFile2启用文件压缩功能(减少负载均衡apache的压力),进行用户的请求响应修改apacheFile1,apacheFile2服务器配置文件httpd.conf,启用文件压缩插件,将其中的LoadModule deflate_module modules/mod_deflate.soLoadModule headers_module modules/mod_headers.so前的#注释符去掉apacheFile1,apacheFile2的httpd.conf的文件末尾增加响应压缩配置内容<Location /># Insert filterSetOutputFilter DEFLATE# Netscape 4.x has some problems...BrowserMatch ^Mozilla/4 gzip-only-text/html# Netscape 4.06-4.08 have some more problemsBrowserMatch ^Mozilla/4\.0[678] no-gzip# MSIE masquerades as Netscape, but it is fine# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48# the above regex won't work. You can use the following# workaround to get the desired effect:BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html# Don't compress imagesSetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary# Make sure proxies don't deliver the wrong contentHeader append Vary User-Agent env=!dont-vary</Location>四、apache文件服务器缓存说明:文件服务使用apache的反向代理负载均衡,用户发出的请求,通过apacheB负载均衡发送请求给apacheFile1或者apacheFile2, apacheFile1或apacheFile2响应数据到apacheB, apacheB进行后续的响应发送数据给客户端,居于此,我们在apacheFile1,apacheFile2启用文件缓存功能(减少负载均衡apache的压力),进行用户的请求响应1、内存缓存方式A、启用内存缓存插件,将apacheFile1,apacheFile2的httpd.conf中LoadModule mem_cache_module modules\mod_mem_cache.so前的#注释符去掉B、在apacheFile1,apacheFile2的httpd.conf末尾增加内存缓存的配置信息MCacheMaxObjectCount 13001MCacheMaxObjectSize 6400000# 指定最大流式化响应可缓冲长度为64KB:MCacheMaxStreamingBuffer 65536MCacheMinObjectSize 10000MCacheRemovalAlgorithm GDSFMCacheRemovalAlgorithm LRUMCacheSize 7000002、硬盘缓存方式A、启用硬盘缓存插件,将apacheFile1,apacheFile2的httpd.conf中LoadModule expires_module modules/mod_expires.soLoadModule file_cache_module modules/mod_file_cache.soLoadModule headers_module modules/mod_headers.soLoadModule proxy_module modules/mod_proxy.soLoadModule proxy_http_module modules/mod_proxy_http.soLoadModule cache_module modules/mod_cache.soLoadModule disk_cache_module modules/mod_disk_cache.soLoadModule jk_module modules\mod_jk-1.2.27-httpd-2.2.10.so前的#注释符去掉B、在apacheFile1,apacheFile2的httpd.conf末尾增加硬盘缓存的配置信息#cache配置##cache文件存放目录CacheRoot "C:/cache"#启用cache调用的url根CacheEnable disk /CacheEnable fd /#不启用cache的配置,对/下的应用不进行缓存# CacheDisable /#CacheDirLevels指定了子目录的层数,CacheDirLength指定了每级子目录名的字符数。
Tomcat集群搭建
本文Apache+Tomcat集群配置基于apache tomcat6.0.35 和apache http server 2.2实现均衡负载准备环境ApacheApache是http服务器,我们利用其对Tomcat进行负载均衡。
目前最新版本为2.2.?,下载地址为/download.cgi#apache22。
如下图:目前已经出现Apache2.3.11,但是为beta版本,所以没有使用。
下载后直接安装msi即可,如果没有其他的http服务器(如iis)则应该可以成功安装,端口即为80,能够访问http://localhost/说明安装成功。
建议不要监听80端口,因为有时候80端口已经被IIS服务器给占或者其他软件被占的话,apache server是安装不成功的(这样会报错:Address already in use: make_sock: could not bind to port 80/443…)。
如果想改监听的端口,请修改httpd.conf,找到:listen 80 改成 listen 8080即可监听8080端口TomcatTocmat7目前已经出现稳定版本的7.0.12,Tomcat6则为6.0.32。
经我测试,这2个版本的Apache负载均衡配置过程都是一样的,因此下面的配置在Tomcat6或7集群是通用的。
但是按照下面的配置,集群中Tomcat不能既有Tomcat6又有Tomcat7,否则虽能够负载均衡,但不能进行session复制,不知其他方式配置的集群是否可以。
Tomcat就不用怎么介绍了。
既然在本地需要多个节点,那么需要下载ZIP 版本的Tomcat。
JKJK是Tomcat提供给http服务器的插件(个人理解的),下载地址为/apache/tomcat/tomcat-connectors/jk/binaries /windows/。
如下图:(请下版本号能对应的so)这里选择的是mod_jk-1.2.31-httpd-2.2.3.so,如果http服务器是Apache2.0.X版本,则必须选择mod_jk-1.2.31-httpd-2.0.52.so,页面下方有英文的说明,大家可以看下。
tomcat+APACHE参数解释
节点3
节点4
1
2
3
0
而集群方式也是使用这种方法进行平衡。Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。
worker.server202.host=192.168.11.202
worker.server202.type=ajp13
worker.server202.lbfactor=1
worker.server202.local_worker=1
worker.server202.cachesize=1000
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 请求分发配置,可以配置多项
JkMount /* loadbalancer
#关掉主机Lookup,如果为on,很影响性能,可以有10多秒钟的延迟。
6、Apache服务器的配置文件httpd.conf中,默认有三个参数对性能的影响比较大,但根据不同的性能要求,参数的表现又不一样,太小并发提不上去,太大性能反而不好,建议根据项目的需要,实际做个测试,如并发要求800的话,可以设定为:
#一个连接的最大请求数量
MaxKeepAliveRequests 1000(值为0,则不限制数量)
如果上面的sticky_session设为true时,建议此处也设为true,此参数表明如果集群中某台Tomcat服务器在多次请求没有响应后,是否将当前的请求,转发到其它Tomcat服务器上处理;此参数在sticky_session=true时,影响比较大,会导致转发到其它Tomcat服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。
负载均衡参数
负载均衡参数负载均衡是现代计算机网络中的重要概念,它用于确保服务器能够有效地处理大量的请求并平衡资源的使用情况。
在负载均衡过程中,各种参数起着关键的作用。
本文将介绍一些常见的负载均衡参数,解释它们对系统性能和可靠性的影响,并讨论如何在实际应用中进行配置。
1. 负载算法参数负载算法参数用于确定负载均衡器如何选择服务器来处理请求。
常见的负载算法包括轮询、最小连接数和IP散列等。
这些算法可以按照不同的需求来进行配置。
例如,在轮询算法中,服务器将按照顺序处理请求,而在最小连接数算法中,请求将被发送到连接数最少的服务器。
2. 健康检查参数健康检查参数用于检测服务器是否正常运行。
当一个服务器宕机或者出现故障时,负载均衡器会将请求转发到其他正常运行的服务器。
健康检查参数可以配置检查的频率、超时时间和检查的方式。
例如,可以通过对服务器的特定端口进行连接请求来检查服务器是否可用。
3. 会话保持参数会话保持参数用于确保客户端在多次请求中保持与同一服务器的连接。
这对于某些应用程序非常重要,例如在线购物网站,用户希望在购物过程中保持与同一服务器的连接以确保购物车等信息的一致性。
会话保持参数可以通过启用或禁用会话ID的传递来配置,以及设置会话超时时间。
4. 转发方式参数转发方式参数用于指定负载均衡器的转发策略。
常见的转发方式包括源地址转发、目标地址转发和混合转发。
源地址转发将请求转发到与客户端最近的服务器,目标地址转发将请求转发到与目标服务器最近的负载均衡器,而混合转发则根据不同的情况选择最合适的转发方式。
5. 并发连接数参数并发连接数参数用于限制负载均衡器和服务器的最大并发连接数。
这是为了确保系统的稳定性和性能。
通过设置适当的并发连接数参数,可以防止因为过多的连接而导致服务器崩溃或者负载均衡器超负荷。
6. 限速参数限速参数用于限制每个连接的最大传输速度。
在某些情况下,服务器的带宽可能是有限的,因此限制每个连接的传输速度可以确保公平共享带宽资源。
TOMCAT5.5集群与负载均衡部署配置文档
TOMCAT5.5集群与负载均衡部署配置文档版本V1.0目录1 负载均衡原理和基本特点 (2)1.1 负载技术 (2)1.2 技术特点简介 (2)1.2.1 集群原理 (2)1.2.2 负载均衡与故障复原 (3)1.2.3 SESSION复制方式 (3)2 集群操作说明 (4)2.1 环境说明 (4)2.2 安装tomcat (4)2.3 负载均衡配置 (6)2.4 集群配置 (9)2.5 应用配置 (12)2.6测试结果 (13)2.6.1 负载均衡测试 (13)2.6.2 集群容错测试 (16)2.7 备注 (17)2.7.1 1同台部署 (17)2.7.2 开放相关端口 (18)1负载均衡原理和基本特点1.1 负载技术本方案采用反向代理负载均衡(如Apache+JK2+Tomcat这种组合),就是使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web 服务器之一上,从而达到负载均衡的目的。
这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。
1.2 技术特点简介1.2.1集群原理Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。
1、集群地址:集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。
具有单一集群地址(也叫单一影像)是集群的一个基本特征。
维护集群地址的设置被称为负载均衡器。
负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。
有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。
只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。
Apache配置详解
Apache配置详解Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改。
主站点的配置(基本配置)(1) 基本配置:ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置。
其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。
PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。
Listen 80 #服务器监听的端口号。
ServerName :80 #主站点名称(网站的主机名)。
ServerAdmin admin@ #管理员的邮件地址。
DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。
以下是对主站点的目录进行访问控制:<Directory "/mnt/web/clusting">Options FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>在上面这段目录属性配置中,主要有下面的选项:Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:ExecCGI: 在该目录下允许执行CGI脚本。
FollowSymLinks: 在该目录下允许文件系统使用符号连接。
Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。
SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
其它可用值和含义请参阅:/Apache/ApacheManual/mod/core.html#options AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):None: 当AllowOverride被设置为None时。
浅析Tomcat Web服务器基于Apache的集群与负载均衡
浅析Tomcat Web服务器基于Apache的集群与负载均衡摘要:目前海南电网公司有很多接口应用程序在运行,其中大部分是基于WEBSERVICE方式的接口,而WEBSERVICE接口绝大多数都是采用的Tomcat这一开源软件,电网运维部门如何保证接口的正常运行是个工作量大而且让人头痛的问题,因为很多接口是系统与系统之间的关键接点,是否正常运行影响海南电网的生产、经营分析等方面,基于这一现状,我们摸索出了WEBSERVICE接口基于Apache的集群与负载均衡的具体实现方法,本文从实际例子出发,详细阐述了Tomcat Web服务器实现基于Apache集群与负载均衡的过程。
关键词:WEB服务器Tomcat 集群负载均衡Session 云计算1 背景与发展本文的集群指WEB服务器集群,只是集群技术中很小的分支。
随着业务与需求的增长WEB服务器访问量不断的增加,客户对产品的负载能力与稳定性随之提高,在单一WEB服务器的架构中已经难以达到用户的需求,在进一步提高产品的质量外,需要寻求更可靠的技术支持。
系统在实际应用中需要我们回答以下问题。
(1)在产品稳定的情况下,如何面对不断增长的访问量?(2)在现有硬件的基础下,如何更进一步发挥硬件的性能?(3)WEB应用突发停止后,如何保证继续为电网生产经营提供服务?(4)在更换新版本系统时,如果保证不间断的提供服务?上面的问题是在所有WEB系统开发、运行、维护过程中都会碰到的问题。
如果要解决这个问题则首先要采用:WEB服务器系统集群技术。
采用集群技术之后解决WEB服务器容量带来的巨大挑战,服务器资源终究是有限的,大容量服务器对用户来说是一笔巨大的开支,也无法保障原来的投入,同时也解决不了根本问题。
WEB系统集群技术为系统容量、扩展问题提供了良好的途径,同时又能保护用户的投资,它能把一组服务器通过一定形式组织起来,对外提供强大的服务能力,也能在同一服务器上部署多个相同系统集群充分挖掘服务器的潜力。
Linux搭建Apache+Tomcat环境(详细文档)
Linux搭建Apache+Tomcat环境使用手册(仅供内部使用)V1.0目录目录 (1)1 引言 (3)1.1 编写目的 (3)1.2 项目背景 (3)1.3 定义 (3)1.3.1 集群(Cluster) (3)1.3.2 负载均衡(Load Balance) (3)1.4 参考资料 (3)1.5 变更历史 (3)2 技术介绍 (3)2.1 技术目标 (3)2.2 网络架构 (3)2.3 软件架构 (4)3 客户端软件准备 (4)3.1 Tomcat: (4)3.2 Apache: (4)3.3 Jk: (4)4 测试环境规划 (4)4.1 Apache集群程序 (4)4.2 Tomcat1程序(内容+后台统一部署) (4)4.3 Tomcat2程序(内容+后台统一部署) (5)5 详细步骤 (5)5.1 安装JDK (5)5.1.1 jdk1.5.0_19 (5)5.1.2 配置环境变量 (6)5.1.3 测试Java是否安装成功 (6)5.2 安装Tomcat (6)5.2.1 Tomcat环境准备 (6)5.2.2 配置环境变量 (7)5.2.3 测试Tomcat是否安装成功 (7)5.2.4 部署工程项目 (7)5.3 安装Apache (7)5.3.1 apache环境准备 (8)5.3.2 httpd-2.2.12.tar.gz (8)5.3.3 测试Apache是否安装成功 (8)5.4 集群和负载均衡的配置 (9)5.5 修改httpd.conf (9)5.6 安装mod_jk.so (9)5.7 建立mod_jk.conf文件 (10)5.8 建立workers.properties文件 (10)5.9 建立uriworkermap.properties (11)5.10 综合测试Apache + Tomcat (11)6 总结 (12)6.1 绑定的域名 (12)6.2 编译出so文件 (12)6.3 设置Apache和Tomcat随系统启动而自动启动: (12)6.3.1 Red Hat的配置 (12)6.3.2 Ubuntu 的配置 (12)6.4 不足之处,见谅! (12)7 附录 (13)7.1 Tomcat集群与负载均衡区别以及特性 (13)7.2 ubuntu 配置开机启动vnc (15)1 引言1.1 编写目的本说明手册为了阐述Linux搭建Apache+Tomcat环境,并详细介绍Tomcat的集群和负载均衡配置而编写。
Apache负载均衡设置方法 mod_proxy
Apache负载均衡设置方法: mod_proxy 收藏Apache负载均衡设置方法: mod_proxy来源:网络收集一般来说,负载均衡就是将客户端的请求分流给后端的各个真实服务器,达到负载均衡的目的。
还有一种方式是用两台服务器,一台作为主服务器(Master),另一台作为热备份(Hot Standby),请求全部分给主服务器,在主服务器当机时,立即切换到备份服务器,以提高系统的整体可第一次看到这个标题时我也很惊讶,Apache居然还能做负载均衡?真是太强大了。
经过一番调查后发现的确可以,而且功能一点都不差。
这都归功于mod_proxy 这个模块。
不愧是强大的Apache啊。
废话少说,下面就来解释一下负载均衡的设置方法。
一般来说,负载均衡就是将客户端的请求分流给后端的各个真实服务器,达到负载均衡的目的。
还有一种方式是用两台服务器,一台作为主服务器(Master),另一台作为热备份(Hot Standby),请求全部分给主服务器,在主服务器当机时,立即切换到备份服务器,以提高系统的整体可靠性。
1. 负载均衡的设置1).基本配置Apache可以应对上面这两种需求。
先来讨论一下如何做负载均衡。
假设一台apache服务器域名为, 首先需要启用Apache的几个模块:Httpd.conf代码LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.soLoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.soLoadModule proxy_http_module modules/mod_proxy_http.somod_proxy提供代理服务器功能,mod_proxy_balancer提供负载均衡功能,mod_proxy_http让代理服务器能支持HTTP协议。
ApacheTomcat下载、安装、配置图文教程
ApacheTomcat下载、安装、配置图⽂教程Tomcat安装配置欢迎我的博客。
Tomcat是Apache 软件基⾦会(Apache Software Foundation)的Jakarta 项⽬中的⼀个核⼼项⽬,由Apache、Sun 和其他⼀些公司及个⼈共同开发⽽成。
由于有了Sun 的参与和⽀持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5⽀持最新的Servlet 2.4 和JSP 2.0 规范。
因为Tomcat 技术先进、性能稳定,⽽且免费,因⽽深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为⽬前⽐较流⾏的Web 应⽤服务器。
Tomcat官⽹Apache Tomcat - Welcome!Tomcat下载安装Tomcat下载9.0.0.M4下载地址:注意:下载可以下载zip格式或exe格式的,其中zip格式的只要解压缩再配置下环境变量就可以使⽤了,就像绿⾊版的。
我这⾥使⽤的是后者exe格式的,这个对于新⼿⽐较⽅便。
点击32-bit/64-bit Windows Service Installer下载Tomcat安装安装很简单下⼀步下⼀步注意安装之前要有Java环境点击Finish可以看到Tomcat服务启动了打开浏览器,敲⼊,如果出现页⾯,那么配置成功。
Tomcat配置Tomcat环境配置并⾮必须下⾯默认已经配置好Java环境。
新建变量在桌⾯此电脑右键、左上⾓⾼级系统设置、⾼级选项卡、环境变量、系统变量下新建以下变量:⽐如Tomcat安装在C:\Tomcat,其他⽬录替换C:\Tomcat即可。
变量名:CATALINA_BASE变量值:C:\Tomcat;变量名:CATALINA_HOME变量值:C:\Tomcat;添加变量在PATH中加⼊%CATALINA_HOME%\bin;在CLASSPATH中加⼊(如果没此变量,按照上步新建即可)%CATALINA_HOME%\common\lib\servlet-api.jar;(注意加的时候在原变量值后加英⽂状态下的“;”)其他问题安装tomcat出现failed to install tomcat8 service错误及解决⽅法在安装tomcat时,报failed to install tomcat6 service ,check your setting and permissio错误。
部署高可用 Tomcat 集群
部署高可用 Tomcat 集群随着互联网应用的不断增多,单个服务器往往难以承受高并发访问的压力,因此采用集群的方式进行部署成为一种常见的解决方案。
Tomcat作为JAVA的应用服务器,也适用于集群的部署。
本文将介绍如何部署高可用Tomcat集群。
一、负载均衡器的选择在部署Tomcat集群之前,我们需要选择一款负载均衡器。
负载均衡器可以将客户端的请求分发到不同的服务器上,从而实现负载均衡。
目前比较常见的负载均衡器有Nginx、HAProxy和Apache等。
在选择负载均衡器时,需要考虑以下因素:1. 功能和性能:负载均衡器需要支持HTTP和HTTPS协议,并能够处理高并发请求。
2. 配置的难易程度:负载均衡器的配置文件需要考虑到性能和使用方便之间的平衡。
3. 社区支持和文档资料:负载均衡器的使用需要有足够的社区支持和文档资料。
综合考虑,我们选择Nginx作为负载均衡器。
二、Tomcat集群节点的设置在设置Tomcat集群节点之前,需要先确定采用的集群方式。
Tomcat集群可以采用共享存储方式或互相同步的方式。
共享存储方式:采用共享存储方式的Tomcat集群将共享同一份资源,包括代码、配置文件和缓存等。
当其中一个节点收到请求时,它将先查询本地缓存,如果不存在则从共享文件系统中读取数据。
互相同步的方式:采用互相同步的方式的Tomcat集群则每个节点都保留一份相同的资源,当其中一个节点更新相应的资源时,其他节点也会同步更新。
在本文中,我们将采用互相同步的方式。
为了实现互相同步,我们需要进行如下配置:1. 安装rsync在每个节点上都需要安装rsync,可以使用yum或apt-get等包管理器安装。
2. 创建Tomcat用户创建一个以Tomcat命名的用户,并赋予其Tomcat所在目录的读写执行权限。
3. 配置rsync在每个节点上都需要配置rsync,使其能够同步Tomcat的配置文件、程序文件和文件夹等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Apache+tomcat+memcache负载均衡的入门配置目录一、准备工作 (1)二、配置Apache (1)1、打开相关的模块。
(1)2、配置tomcat集群。
(2)三、配置tomcat (2)1、配置server的关闭。
(2)2、配置Connector (2)3、配置Engine (3)4、配置Session的复制 (3)这份文档只是一个初步的配置负载均衡的文档,没有涉及过多的性能优化的东西。
所以也就不多言了,直接切入主题。
一、准备工作安装JDK并配置环境变量。
这里要求至少1.5以上版本。
安装apache2.2。
我的安装目录为:D:\Apache2.2安装tomcat6。
为了端口不起冲突,建议直接解压。
我这里只使用了两台tomcat作为集群服务器。
其路径分别为D:\apache-tomcat-6.0.20_v1、D:\apache-tomcat-6.0.20_v2二、配置Apache这里说明一下,我在网上找到的一些资料都在介绍mod_JK的方式配置负载均衡。
但是从apache2.X版本之后其自身已经集成了mod_jk可以直接使用mod_proxy的方式进行负载均衡的配置,所以下面介绍的也即是这种方式。
在D:\Apache2.2\conf目录下找到httpd.conf文件,并进行修改。
修改步骤:1、打开相关的模块。
LoadModule 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.soLoadModule rewrite_module modules/mod_rewrite.so在配置文件里找到上述模块,将前边的“#”去掉.2、配置tomcat集群。
在该配置文件的最后加上:ProxyRequests OffProxyPass / balancer://cluster/<proxy balancer://cluster>BalancerMember ajp://localhost:8009 loadfactor=1 route=jvm1BalancerMember ajp://localhost:9009 loadfactor=1 route=jvm2</proxy>注意红色部分,因为这里我只使用了一台物理机器作为集群的配置,所以就直接使用了localhost指向本地的集群服务器,你也可以使用127.0.0.1。
如果这里你使用多台机器一起配合的话,只需要将localhost修改为其他机器的IP地址就行。
另外需要注意的就是上面配置的端口,为什么要这么配置?将在后边结合tomcat一起做一个详细的说明。
三、配置tomcat在D:\apache-tomcat-*\conf找到server.xml,然后着手修改。
1、配置server的关闭。
因为我是在同一台机器上配置两台tomcat,所以为了使tomcat关闭不出现端口被占用的情况,需要修改关闭端口。
<Server port="8005" shutdown="SHUTDOWN">修改为:<Server port="XXXX" shutdown="SHUTDOWN">注意,我这里用了两台tomcat,所以第一个tomcat我就选择了默认的端口8005,第二个tomcat我将此端口修改为了9005。
总之,如果你有多台tomcat服务器群,都需要将它们的端口修改为互不冲突的端口号。
2、配置Connector这里又两个地方需要修改,第一个就是tomcat监听的http端口,另一个就是tomcat监听的AJP端口:<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" /><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />注意,蓝色部分是tomcat的http端口,因为我在同一台机器上配置了两个tomcat,为了使它们的http端口不冲突,我将第一个tomcat使用默认的端口即8080,第二个tomcat的http端口我修改为了8081。
同样的道理,如果你还有其他的tomcat,记得将它们的http端口修改为互不冲突的端口号即可。
另一个需要修改的端口,红色部分的端口,这里是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。
现在回过头去看看apache的httpd.conf配置,<proxy balancer://cluster>BalancerMember ajp://localhost:8009 loadfactor=1 route=jvm1BalancerMember ajp://localhost:9009 loadfactor=1 route=jvm2</proxy>那么,另一个tomcat的AJP端口你知道要配置成什么了吗?对了,就是9009。
3、配置Engine<Engine name="Catalina" defaultHost="localhost">,这个是原来的配置,现在将这个配置修改为:<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">,然后另一个tomcat修改为<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">。
现在再回过头去看看apache的配置:<proxy balancer://cluster>BalancerMember ajp://localhost:8009 loadfactor=1 route=jvm1BalancerMember ajp://localhost:9009 loadfactor=1 route=jvm2</proxy>这里再说明一点,loadfactor相当于一种加权策略,loadfactor的值越大,对应的tomcat 服务器分到的请求就越多。
像上面的这种设置就说明两台tomcat将平均负载。
4、配置Session的复制步骤1:<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="8"><Manager className="org.apache.catalina.ha.session.DeltaManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"/><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"autoBind="100"selectorTimeout="5000"maxThreads="6"/><!-- timeout="60000"--><Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"><TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender" /></Sender><InterceptorclassName="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/><InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> <InterceptorclassName="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;"/> <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/><Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"tempDir="/tmp/war-temp/"deployDir="/tmp/war-deploy/"watchDir="/tmp/war-listen/"watchEnabled="false"/><ClusterListenerclassName="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster>步骤2:在每个web项目web-info 下web.xml 最后加上<distributable/>新建一个项目测试就OK了惊醒测试测试结果jvm1Jvm25、安装memcache客户端1 Memcached 介绍Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。