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服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。
FineReport关于tomcat集群部署的方案
FineReport关于tomcat集群部署的方案多台服务器集群后,配置权限、数据连接、模板、定时调度等,只能每台服务器一个个配置,不会自动同步到所有服务器。
针对上述情况,在FineReport中提供新集群部署插件,将xml配置文件、finedb/logdb 数据(定时任务、报表目录管理、批量导入、统计信息)的修改都对主机生效。
其他辅机的信息读取也都从主机读取,保证了数据同步。
实现了灾备,即主机当即后,次主机会上位接替主机的工作,保证系统正常运作。
同时还增加了集群灾备之文件同步,会将主机的finedb、xml、模板、jar包、插件等等备份到其他节点的应用上。
支持可以手动同步和自动同步。
插件介绍设计器插件、服务器插件安装好之后,新集群部署,有主机、次主机、辅机之分,配置文件都从主机读取,辅机只能用作计算引擎分担压力,有点事当改配置文件的时候,不需要每个节点都去修改,直接改主机即可。
分布式集群分布式集群文件系统:每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。
这里测试修改主机的报表管理目录树平台标题,然后可以看到辅机会同步修改的配置。
其中报表管理目录树存在finedb中,平台样式的平台标题存在fsconfig.xml中。
•环境准备设置tomcat1、tomcat2、tomcat3集群,tomcat1为主机,tomcat2为辅机,tomcat3为次主机,tomcat集群。
WebReport工程分别放在tomcat下的webapps文件夹里配置文件集群配置完成之后,修改将配置包resource文件夹下的cluster.xml打开,如果没有这个文件的话,就新建一个,基本内容如下:PublicURL是集群默认跳转地址,比如集群时对外地址是自定义端口的,ip:8888/WebReport/ReportServer?op=fs我们并不能获取到这个8888端口,因此这里需要填写实际的ip:端口号,如果这段省略不写,默认跳转80端口。
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: 设置缓存对象的最大大小,建议根据缓存对象的平均大小进行调整。
Tomcat配置文件详解
Tomcat配置⽂件详解打开Tomcat的配置⽬录,我们会发现下⾯的配置⽂件:server.xml:Tomcat的主配置⽂件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;web.xml:遵循Servlet规范标准的配置⽂件,⽤于配置servlet,并为所有的Web应⽤程序提供包括MIME映射等默认配置信息;context.xml:所有host的默认配置信息;logging.properties:⽇志相关配置;tomcat-users.xml:Realm认证时⽤到的相关⾓⾊、⽤户和密码等信息;Tomcat⾃带的manager默认情况下会⽤到此⽂件;在Tomcat中添加/删除⽤户,为⽤户指定⾓⾊等将通过编辑此⽂件实现;catalina.policy:Java相关的安全策略配置⽂件,在系统资源级别上提供访问控制的能⼒,以安全模式启动Tomcat会使⽤这个配置catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此⽂件的相关设置;jaspic-providers.xml:⽤户认证配置⽂件这篇博客就来介绍下这⼏个配置⽂件的作⽤,以及常⽤的配置选项。
server.xml配置server.xml是Tomcat的主配置⽂件,可以对Service, Connector, Engine, Realm, Valve, Hosts等主组件进⾏相关配置。
<!-- port: 接收shutdown指令的端⼝,默认仅允许通过本机访问,默认为8005;shutdown:发往此Server⽤于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;使⽤⽅式:telnet localhost 8005,输⼊SHUTDOWN即可关闭tomcat如果你不配置这两个属性,Tomcat的这种关闭机制还是会运⾏的。
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)设置环境变量。
Tomcat集群及负载均衡配置
Tomcat集群及负载均衡配置在单一的服务器上执行Web应用程序有一些重大问题,当网站的请求量越来越大,单一服务器终究无法满足需要处理的负荷量,所以就显得有点力不从心;而且还存在的问题是会产生单点故障,如果该服务器宕掉,那么网站就无法运作。
不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器上执行Web应用程序。
所以,这时候我们就需要用到集群这一门技术。
1术语介绍1.1 集群集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。
在客户端看来,一个集群就像是一个服务实体,但事实上集群由一组服务实体组成。
与单一服务实体相比较,集群提供了以下两个关键特性: 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。
高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service 的警告。
在集群中,同样的服务可以由多个服务实体提供。
如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。
集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。
1.2 负载均衡负载的基础是集群,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同的硬件构成的计算机。
如一个提供Web 服务的集群,对外界看来是一个大Web服务器。
负载均即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
2常用负载均衡技术常用手负载均衡技术有以下几种HTTP重定向DNS负载均衡反向代理负载均衡IP负载均衡(NAT)直接路由IP隧道本文介绍的是第三种使用apahce+tomcat的反向代理的负载均衡,使用代理服务器可以将请求转发全内部的Web服务器,让代理服务器均匀地转发给多台内部web服务器之一上,从而达到负载均衡目的。
这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。
tomcat部署(配置文件)
tomcat部署(配置⽂件)⼀、启动tomcat服务器的⽅式1. 直接到tomcat服务器的bin⽬录下双击startup.bat2. 通过cmd进⼊bin⽬录,输⼊命令startup.bat1. 但这时会出现的问题是,服务器启动程序只是⼀闪⽽过,为什么呢?其实问题就是,没有Java的JDK,我们需要到环境变量配置系统变量JAVA_HOME。
我们都知道,1.5 以上的版本的JDK只需要配置path变量就可以了。
但是如果你想在机器上使⽤tomcat的话,你就必须配置JAVA_HOME,指向JDK的安装位置。
配置好之后我们就可以正常打开tomcat了,双击startup.bat,tomcat正常启动。
启动完成后,我们在浏览器地址栏上输⼊:http://localhost:8080,会得到以下的界⾯⼆、配置环境变量我们需要配置系统变量:ATALINA_BASE:指向tomcat的安装位置CATALINE_HOME:指向tomcat的安装位置Path:%CATALINA_HOME%\lib;%CATALINA_HOME%\bin三、配置tomcat的端⼝号tomcat的默认服务端⼝是8080。
可以通过配置⽂件来改变该服务端⼝,甚⾄通过修改配置⽂件让tomcat同时在多个端⼝提供服务tomcat的配置⽂件都放在conf⽬录下。
使⽤⽆格式⽂本编辑器打开该⽬录下的server.xml⽂件,定位到68⾏处<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />其中,port="8080"就是web应⽤的服务端⼝,将8080改为任意端⼝,建议使⽤1024以上的端⼝,避免与公⽤端⼝冲突。
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的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。
Apache2.2+tomcat-6.0.18集群部署手册
一、软件准备Apache 2.2Tomcat-6.0.18:mod_jk-1.2.31-httpd-2.2.3.sojdk-1_5_0_06-windows-i586-p.exe注意:由于Apache和Tomcat项目与集群相关的模块均处于持续发展和优化过程中,因此笔者不保证本文配置方法对所有Apache和Tomcat版本均适用。
二、Apache安装1、先准备好软件:2、安装Apache,配置成功一个普通网站服务器3、运行下载好的“httpd-2.2.19-win32-x86-openssl-0.9.8r.msi”,出现如下界面:4、出现Apache HTTP Server 2.0.55的安装向导界面,点“Next”继续5、确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续6、将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续7、设置系统信息,在Network Domain下填入您的域名(比如:),在Server Name下填入您的服务器名称(比如:,也就是主机名加上域名),在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:yinpeng@),上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。
下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。
一般选择如图所示。
按“Next”继续。
]8、选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。
按“Next”继续9、出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。
cluster
打开omcat的监听端口改成由8005改为8105
即把
<Server port="8005" shutdown="SHUTDOWN">
改为
<Server port="8105" shutdown="SHUTDOWN">
如果把不同版本的Tomcat进行集群,目录就可用Tomcat4_3(版本为4.x的第三个tomcat服务器),Tomcat6_4(版本为6.x的第三个tomcat服务器),这是Unmi本人的习惯。
2.修改Apache配置文件http.conf
在apache安装目录下conf目录中找到http.conf,在文件最后加上下面一句话就可以了
8. JkMount /*.jsp controller
如果还要指定*.do也进行分流就再加一行
JkMount /*.do controller
如果你想对所有的请求进行分流只需要写成
JkMount /* controller
4. 在http.conf同目录下新建 workers.properties文件,内容如下
本文基本参考自网络
轻松实现Apache,Tomcat集群和负载均衡,经由实操经历记录而成,碰到些出入,以及个别地方依据个人的习惯,所以在一定程度上未能保持原文的完整性,还望原著者海涵。
因原文中有较多的贴图,如若各位读者一时不想亲自动手而直想看到配置效果,可查看原文。
一:软件环境
1. Apache: apache 2.0.55 (由/进入下载)(点击下载apache 2.0.55)
配置时请视实际情况而取舍。
在同一台服务器上配置多个Tomcat
在同一台服务器上配置多个TomcatWindows下实现在一台服务器上配置两个Tomcat。
主要就是要避免Tomcat 服务器的端口冲突的问题。
只需要修改CATALINA_HOME\conf\server.xml中的启动端口和连接端口就OK了!下面我们把配置的详细过程写在下面,以供参考:(此例以配置两个Tomcat 为例)1.使用apache-tomcat-6.0.18.rar。
2.解压该压缩包到D:/tomcat目录下。
3.apache-tomcat-6.0.18-m1,另外一个apache-tomcat-6.0.18-m24.第一个免安装Tomcat需要设置俩个环境变量:JAVA_HOME、CATALINE_HOME5.第二个免安装Tomcat需要设置俩个环境变量:JAVA_HOME、CATALINE_HOME2。
并修改第二个免安装的Tomcat对环境变量的引用6. 修改startup.bat和catalina.bat文件内容:a)打开D:\tomcat\apache-tomcat-6.0.18-m2\bin\startup.bat文件,把其中所有CATALINA_HOME替换为CATALINA_HOME2。
b)打开D:\tomcat\apache-tomcat-6.0.18-m2\bin\catalina.bat文件,把其中所有CATALINA_HOME替换为CATALINA_HOME2。
7.第一个免安装Tomcat的端口配置保存不变。
8.修改第二个免安装Tomcat启动端口和关闭端口, 避免Tomcat服务器的端口冲突的问题。
进入D:\tomcat\apache-tomcat-6.0.18-m2\conf目录,打开server.xml文件,修改下面几个地方:a)首先是配置关闭端口,找到<Server port="8005"shutdown="SHUTDOWN">,t1不变,把t2改为9005。
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的集群和负载均衡配置而编写。
部署高可用 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的配置文件、程序文件和文件夹等。
Apache2.4+Tomcat7.0整合配置详解
Apache2.4+Tomcat7.0整合配置详解⼀、简单介绍 Apache、TomcatApache HTTP Server(简称 Apache),是 Apache 软件基⾦协会的⼀个开放源码的⽹页服务器,可以在 Windows、Unix、Linux 等操作系统中运⾏是最流⾏的Web服务器软件之⼀。
Apache 反应速度快,运⾏效率⾼,但只⽀持HTML等静态页⾯(加载插件后也可⽀持 PHP 页⾯)。
Apache Tomcat 是由 Apache 软件基⾦协会与 Sun 公司联合开发的⼀款Web服务器,它除了⽀持HTML等静态页⾯外,还⽀持JSP、Servlet 。
在相同的运⾏环境下,Tomcat 对静态页⾯的反应速度没有 Apache 灵敏,整合 Apache 与 Tomcat 能使系统运⾏于⼀个良好环境下,提⾼系统效率。
⼆、软件包下载运⾏环境:Windows 7Apache 2.4 下载:Tomcat 7.0 下载:JDK 6 下载:mod_jk.mo 连接包下载:下载mod_jk时⼀定要看清版本,下载对应的版本如果已有tomcat和jdk,则不⽤另外下载三、Apache 2.4 安装下载的apache2.4如下图所⽰,直接解压到D:\apache-httpd修改⽂件D:\apache-httpd\conf\httpd.conf,端⼝改为8000,程序⽬录指定为E:\apache-tomcat-7.0.50\webapps\ROOT(即tomcat程序所在⽬录,此⽬录可以修改)ServerRoot "D:/apache-httpd"## Mutex: Allows you to set the mutex mechanism and mutex file directory# for individual mutexes, or change the global defaults## Uncomment and change the directory if mutexes are file-based and the default # mutex file directory is not on a local disk or is not appropriate for some# other reason.## Mutex default:logs## Listen: Allows you to bind Apache to specific IP addresses and/or# ports, instead of the default. See also the <VirtualHost># directive.## Change this to Listen on specific IP addresses as shown below to# prevent Apache from glomming onto all bound IP addresses.##Listen 12.34.56.78:80Listen 8000## Dynamic Shared Object (DSO) Support## To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule' lines at this location so the# directives contained in it are actually available _before_ they are used.# Statically compiled modules (those listed by `httpd -l') do not need# to be loaded here.## Example:# LoadModule foo_module modules/mod_foo.so#LoadModule access_compat_module modules/mod_access_compat.so LoadModule actions_module modules/mod_actions.soLoadModule alias_module modules/mod_alias.soLoadModule allowmethods_module modules/mod_allowmethods.so LoadModule asis_module modules/mod_asis.soLoadModule auth_basic_module modules/mod_auth_basic.so#LoadModule auth_digest_module modules/mod_auth_digest.so#LoadModule auth_form_module modules/mod_auth_form.so#LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_core_module modules/mod_authn_core.so#LoadModule authn_dbd_module modules/mod_authn_dbd.so#LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_file_module modules/mod_authn_file.so#LoadModule authn_socache_module modules/mod_authn_socache.so#LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule authz_core_module modules/mod_authz_core.so#LoadModule authz_dbd_module modules/mod_authz_dbd.so#LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so#LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so#LoadModule buffer_module modules/mod_buffer.so#LoadModule cache_module modules/mod_cache.so#LoadModule cache_disk_module modules/mod_cache_disk.so#LoadModule cache_socache_module modules/mod_cache_socache.so#LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule cgi_module modules/mod_cgi.so#LoadModule charset_lite_module modules/mod_charset_lite.so#LoadModule data_module modules/mod_data.so#LoadModule dav_module modules/mod_dav.so#LoadModule dav_fs_module modules/mod_dav_fs.so#LoadModule dav_lock_module modules/mod_dav_lock.so#LoadModule dbd_module modules/mod_dbd.so#LoadModule deflate_module modules/mod_deflate.soLoadModule dir_module modules/mod_dir.so#LoadModule dumpio_module modules/mod_dumpio.soLoadModule env_module modules/mod_env.so#LoadModule expires_module modules/mod_expires.so#LoadModule ext_filter_module modules/mod_ext_filter.so#LoadModule file_cache_module modules/mod_file_cache.so#LoadModule filter_module modules/mod_filter.so#LoadModule http2_module modules/mod_http2.so#LoadModule headers_module modules/mod_headers.so#LoadModule heartbeat_module modules/mod_heartbeat.so#LoadModule heartmonitor_module modules/mod_heartmonitor.so#LoadModule ident_module modules/mod_ident.so#LoadModule imagemap_module modules/mod_imagemap.soLoadModule include_module modules/mod_include.so#LoadModule info_module modules/mod_info.soLoadModule isapi_module modules/mod_isapi.so#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so #LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so #LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so#LoadModule ldap_module modules/mod_ldap.so#LoadModule logio_module modules/mod_logio.soLoadModule log_config_module modules/mod_log_config.so#LoadModule log_debug_module modules/mod_log_debug.so#LoadModule log_forensic_module modules/mod_log_forensic.so#LoadModule lua_module modules/mod_lua.so#LoadModule macro_module modules/mod_macro.soLoadModule mime_module modules/mod_mime.so#LoadModule mime_magic_module modules/mod_mime_magic.soLoadModule negotiation_module modules/mod_negotiation.soLoadModule proxy_module modules/mod_proxy.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.soLoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so#LoadModule proxy_express_module modules/mod_proxy_express.so#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.soLoadModule proxy_ftp_module modules/mod_proxy_ftp.so#LoadModule proxy_html_module modules/mod_proxy_html.soLoadModule proxy_http_module modules/mod_proxy_http.so#LoadModule proxy_http2_module modules/mod_proxy_http2.so#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so#LoadModule ratelimit_module modules/mod_ratelimit.so#LoadModule reflector_module modules/mod_reflector.so#LoadModule remoteip_module modules/mod_remoteip.so#LoadModule request_module modules/mod_request.so#LoadModule reqtimeout_module modules/mod_reqtimeout.soLoadModule rewrite_module modules/mod_rewrite.so#LoadModule sed_module modules/mod_sed.so#LoadModule session_module modules/mod_session.so#LoadModule session_cookie_module modules/mod_session_cookie.so#LoadModule session_crypto_module modules/mod_session_crypto.so#LoadModule session_dbd_module modules/mod_session_dbd.soLoadModule setenvif_module modules/mod_setenvif.so#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so#LoadModule socache_dbm_module modules/mod_socache_dbm.so#LoadModule socache_memcache_module modules/mod_socache_memcache.so#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule speling_module modules/mod_speling.soLoadModule ssl_module modules/mod_ssl.so#LoadModule status_module modules/mod_status.so#LoadModule substitute_module modules/mod_substitute.so#LoadModule unique_id_module modules/mod_unique_id.so#LoadModule userdir_module modules/mod_userdir.so#LoadModule usertrack_module modules/mod_usertrack.so#LoadModule version_module modules/mod_version.so#LoadModule vhost_alias_module modules/mod_vhost_alias.so#LoadModule watchdog_module modules/mod_watchdog.so#LoadModule xml2enc_module modules/mod_xml2enc.so<IfModule unixd_module>## If you wish httpd to run as a different user or group, you must run# httpd as root initially and it will switch.## User/Group: The name (or #number) of the user/group to run httpd as.# It is usually good practice to create a dedicated user and group for# running httpd, as with most system services.#User daemonGroup daemon</IfModule># 'Main' server configuration## The directives in this section set up the values used by the 'main'# server, which responds to any requests that aren't handled by a# <VirtualHost> definition. These values also provide defaults for# any <VirtualHost> containers you may define later in the file.## All of these directives may appear inside <VirtualHost> containers,# in which case these default settings will be overridden for the# virtual host being defined.### ServerAdmin: Your address, where problems with the server should be# e-mailed. This address appears on some server-generated pages, such# as error documents. e.g. admin@#ServerAdmin aaa123@## ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup.## If your host doesn't have a registered DNS name, enter its IP address here. #ServerName localhost## Deny access to the entirety of your server's filesystem. You must# explicitly permit access to web content directories in other# <Directory> blocks below.#<Directory />AllowOverride noneRequire all denied</Directory>## Note that from this point forward you must specifically allow# particular features to be enabled - so if something's not working as# you might expect, make sure that you have specifically enabled it# below.### DocumentRoot: The directory out of which you will serve your# documents. By default, all requests are taken from this directory, but# symbolic links and aliases may be used to point to other locations.#DocumentRoot "E:\apache-tomcat-7.0.50\webapps\ROOT"<Directory "E:\apache-tomcat-7.0.50\webapps\ROOT">## Possible values for the Options directive are "None", "All",# or any combination of:# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews## Note that "MultiViews" must be named *explicitly* --- "Options All"# doesn't give it to you.## The Options directive is both complicated and important. Please see# /docs/2.4/mod/core.html#options# for more information.#Options Indexes FollowSymLinks## AllowOverride controls what directives may be placed in .htaccess files.# It can be "All", "None", or any combination of the keywords:# AllowOverride FileInfo AuthConfig Limit#AllowOverride None## Controls who can get stuff from this server.#Require all granted</Directory>## DirectoryIndex: sets the file that Apache will serve if a directory# is requested.#<IfModule dir_module>DirectoryIndex index.html index.php index.htm index.jsp</IfModule>## The following lines prevent .htaccess and .htpasswd files from being# viewed by Web clients.#<Files ".ht*">Require all denied</Files>## ErrorLog: The location of the error log file.# If you do not specify an ErrorLog directive within a <VirtualHost># container, error messages relating to that virtual host will be# logged here. If you *do* define an error logfile for a <VirtualHost># container, that host's errors will be logged there and not here.#ErrorLog "logs/error.log"## LogLevel: Control the number of messages logged to the error_log.# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.#LogLevel warn<IfModule log_config_module>## The following directives define some format nicknames for use with# a CustomLog directive (see below).#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat "%h %l %u %t \"%r\" %>s %b" common<IfModule logio_module># You need to enable mod_logio.c to use %I and %OLogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule>## The location and format of the access logfile (Common Logfile Format).# If you do not define any access logfiles within a <VirtualHost># container, they will be logged here. Contrariwise, if you *do*# define per-<VirtualHost> access logfiles, transactions will be# logged therein and *not* in this file.#CustomLog "logs/access.log" common## If you prefer a logfile with access, agent, and referer information# (Combined Logfile Format) you can use the following directive.##CustomLog "logs/access.log" combined</IfModule><IfModule alias_module>## Redirect: Allows you to tell clients about documents that used to# exist in your server's namespace, but do not anymore. The client# will make a new request for the document at its new location.# Example:# Redirect permanent /foo /bar## Alias: Maps web paths into filesystem paths and is used to# access content that does not live under the DocumentRoot.# Example:# Alias /webpath /full/filesystem/path## If you include a trailing / on /webpath then the server will# require it to be present in the URL. You will also likely# need to provide a <Directory> section to allow access to# the filesystem path.## ScriptAlias: This controls which directories contain server scripts.# ScriptAliases are essentially the same as Aliases, except that# documents in the target directory are treated as applications and# run by the server when requested rather than as documents sent to the# client. The same rules about trailing "/" apply to ScriptAlias# directives as to Alias.#ScriptAlias /cgi-bin/ "D:/apache-httpd/cgi-bin/"</IfModule><IfModule cgid_module>## ScriptSock: On threaded servers, designate the path to the UNIX# socket used to communicate with the CGI daemon of mod_cgid.##Scriptsock cgisock</IfModule>## "D:/apache-httpd/cgi-bin" should be changed to whatever your ScriptAliased# CGI directory exists, if you have that configured.#<Directory "D:/apache-httpd/cgi-bin">AllowOverride NoneOptions NoneRequire all granted</Directory><IfModule mime_module>## TypesConfig points to the file containing the list of mappings from# filename extension to MIME-type.#TypesConfig conf/mime.types## AddType allows you to add to or override the MIME configuration# file specified in TypesConfig for specific file types.##AddType application/x-gzip .tgz## AddEncoding allows you to have certain browsers uncompress# information on the fly. Note: Not all browsers support this.##AddEncoding x-compress .Z#AddEncoding x-gzip .gz .tgz## If the AddEncoding directives above are commented-out, then you# probably should define those extensions to indicate media types:#AddType application/x-compress .ZAddType application/x-gzip .gz .tgz## AddHandler allows you to map certain file extensions to "handlers":# actions unrelated to filetype. These can be either built into the server# or added with the Action directive (see below)## To use CGI scripts outside of ScriptAliased directories:# (You will also need to add "ExecCGI" to the "Options" directive.)##AddHandler cgi-script .cgi# For type maps (negotiated resources):#AddHandler type-map var## Filters allow you to process content before it is sent to the client.## To parse .shtml files for server-side includes (SSI):# (You will also need to add "Includes" to the "Options" directive.)##AddType text/html .shtml#AddOutputFilter INCLUDES .shtml</IfModule>## The mod_mime_magic module allows the server to use various hints from the # contents of the file itself to determine its type. The MIMEMagicFile# directive tells the module where the hint definitions are located.##MIMEMagicFile conf/magic## Customizable error responses come in three flavors:# 1) plain text 2) local redirects 3) external redirects## Some examples:#ErrorDocument 500 "The server made a boo boo."#ErrorDocument 404 /missing.html#ErrorDocument 404 "/cgi-bin/missing_handler.pl"#ErrorDocument 402 /subscription_info.html### MaxRanges: Maximum number of Ranges in a request before# returning the entire resource, or one of the special# values 'default', 'none' or 'unlimited'.# Default setting is to accept 200 Ranges.#MaxRanges unlimited## EnableMMAP and EnableSendfile: On systems that support it,# memory-mapping or the sendfile syscall may be used to deliver# files. This usually improves server performance, but must# be turned off when serving from networked-mounted# filesystems or if support for these functions is otherwise# broken on your system.# Defaults: EnableMMAP On, EnableSendfile Off##EnableMMAP off#EnableSendfile on# Supplemental configuration## The configuration files in the conf/extra/ directory can be# included to add extra features or to modify the default configuration of # the server, or you may simply copy their contents here and change as # necessary.# Server-pool management (MPM specific)#Include conf/extra/httpd-mpm.conf# Multi-language error messages#Include conf/extra/httpd-multilang-errordoc.conf# Fancy directory listings#Include conf/extra/httpd-autoindex.conf# Language settings#Include conf/extra/httpd-languages.conf# User home directories#Include conf/extra/httpd-userdir.conf# Real-time info on requests and configuration#Include conf/extra/httpd-info.conf# Virtual hosts#Include conf/extra/httpd-vhosts.conf# Local access to the Apache HTTP Server Manual#Include conf/extra/httpd-manual.conf# Distributed authoring and versioning (WebDAV)#Include conf/extra/httpd-dav.conf# Various default settings#Include conf/extra/httpd-default.conf# Configure mod_proxy_html to understand HTML4/XHTML1<IfModule proxy_html_module>Include conf/extra/proxy-html.conf</IfModule># Secure (SSL/TLS) connections#Include conf/extra/httpd-ssl.conf## Note: The following must must be present to support# starting without SSL on platforms with no /dev/random equivalent# but a statically compiled-in mod_ssl.#<IfModule ssl_module>SSLRandomSeed startup builtinSSLRandomSeed connect builtin</IfModule>完成配置后,启动Apache 2.4,在 "E:\apache-tomcat-7.0.50\webapps\ROOT" 添加静态页⾯ index.html。
tomcat性能调优方案
tomcat性能调优方案在开发和部署Web应用程序时,Tomcat是一款广泛使用的Java Servlet容器。
然而,随着业务的增长和用户量的上升,Tomcat性能问题可能会成为一个挑战。
为了确保应用程序的高效运行,我们需要采取一些性能调优措施。
本文将介绍一些Tomcat性能调优方案,以提高应用程序的性能和响应速度。
一、优化Tomcat服务器配置1. 调整内存参数:通过修改Tomcat的启动脚本‘catalina.sh’(Linux)或‘catalina.bat’(Windows),可以配置JVM的内存参数。
可以增加-Xms和-Xmx参数来增加JVM的初始堆大小和最大堆大小。
适当调整这些参数可以提高应用程序的内存管理效率,从而提高性能。
2. 调整连接器配置:Tomcat使用连接器来处理HTTP请求,可以通过调整连接器的配置参数来提高性能。
例如,调整maxThreads参数来增加同时处理请求的线程数,增加acceptCount参数来增加等待处理的请求队列长度,以及调整keepAliveTimeout参数来控制HTTP连接的持久化时间等。
二、优化应用程序代码1. 减少HTTP请求:每次HTTP请求都会消耗系统资源,并且增加网络延迟。
通过优化应用程序代码,减少不必要的HTTP请求可以提高性能。
例如,可以使用CSS sprites来减少图片加载请求,合并和压缩JavaScript和CSS文件来减少文件加载请求等。
2. 使用缓存:合理使用缓存机制可以减少对数据库和其他资源的请求次数,提高应用程序的性能。
例如,可以使用缓存技术来缓存数据库查询结果、页面片段或整个页面,以减少对数据库和服务器的访问次数。
3. 避免同步阻塞:多线程并发请求可能会导致同步阻塞,影响应用程序的性能。
通过合理使用同步机制和锁机制,避免同步阻塞可以提高性能。
例如,使用线程池来管理并发请求的线程,使用并发集合类来替代同步集合类等。
三、数据库优化1. 数据库索引优化:在使用数据库时,合理的索引设计可以大大提高查询性能。
tomcat的10个配置
1.配置系统管理〔Admin Web Application〕大多数商业化的J2EE效劳器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。
Tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化的竞争对手。
Tomcat的Admin Web Application最初在4.1版本时出现,当时的功能包括管理context、data source、user和group等。
当然也可以管理像初始化参数,user、group、role的多种数据库管理等。
在后续的版本中,这些功能将得到很大的扩展,但现有的功能已经非常实用了。
Admin Web Application被定义在自动部署文件:CATALINA_BASE/webapps/admin.xml 。
〔译者注:CATALINA_BASE 即tomcat安装目录下的server目录〕你必须编辑这个文件,以确定Context中的docBase参数是绝对路径。
也就是说,CATALINA_BASE/webapps/admin.xml 的路径是绝对路径。
作为另外一种选择,你也可以删除这个自动部署文件,而在server.xml文件中建立一个Admin Web Application的context,效果是一样的。
你不能管理Admin Web Application这个应用,换而言之,除了删除CATALINA_BASE/webapps/admin.xml ,你可能什么都做不了。
如果你使用UserDatabaseRealm〔默认〕,你将需要添加一个user以及一个role到CATALINA_BASE/conf/tomcat-users.xml 文件中。
你编辑这个文件,添加一个名叫“admin〞的role 到该文件中,如下:<role name="admin"/>你同样需要有一个用户,并且这个用户的角色是“admin〞。
Tomcat的安装与配置和Tomcat端口的配置
前沿1、如果之前安装了Oreacla,在使用tomcat是会出现8080端口被占用的情况发生,解决的方法就是对tomcat的端口进行配置,安装tomcat注意两个系统环境变量的配置:JAVA_HOME、CATALINA_HOME,(安装端口的配置见后面的附件一)Tomcat的配置及测试:第一步:下载tomcat,然后解压到任意盘符第二步:配置系统环境变量我这里是tomcat5.5,解压到的D盘 (路径为: D:\Program Files\tomcat5.5),虽然我们现在有了解压好了tomcat5.5服务器,但如果我们此时启动tomcat服务器,系统并不知道去哪里找tomcat服务器,所以我要先给系统做一个说明,既配置环境变量.启动tomcat需要两个环境变量(注意我这里说的是启动)一个是JAVA_HOME(就是JDK的目录)另一个是CATALINA_HOME(就是你当前所使用的tomcat的目录)我这里的配置步骤如下:我的电脑->属性->高级->环境变量我个人是将环境变量设置在用户变量里,当然也可以设置在系统变量里,按个人需要自由发挥:变量配置:新建->变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.6.0新建->变量名:CATALINA_HOME 变量值:D:\Program Files\tomcat5.5配置结束,测试是否配置成功:开始菜单->运行->cmd (输入cmd命令)->进入命令窗口然后分别输入set JAVA_HOME 和set CATALINA_HOME命令,如果能找到,说明配置成功,启动tomcat服务器:第一步:进入tomcat所在目录下的bin文件夹,命令为:d: (进入D盘的命令)cd D:\Program Files\tomcat5.5\bin (此处为防止出错,最好直接复制粘贴)startup.bat (启动tomcat服务器的命令)tomcat服务器启动成功,会显示: “Server startup in 5437 ms ”(注意5437ms 是可变的)关闭tomcat服务器命令为:shutdown.bat此时,我们可以在浏览器中输入http://localhost:8080/如果打开了,表示服务器配置成功到此,配置和启动tomcat5.5服务器完成.---------------------------------------------------------------------------------------------------------------------下面介绍一个简单的web应用例子:第一步:创建一个web应用所需的文件夹及配置web.xml文件直接到D盘找到tomcat文件夹下的webapps文件夹(webapps文件夹是专门用来存放web应用的,此文件默认有6个例子),创建一个serv-app文件夹(名字随便起),在serv-app文件夹中创建一个WEB-INF文件夹(名字是固定的而且必须大写),在WEB-INF文件夹中创建classes文件夹(用来存放.class文件)和web.xml 文件(用来配置servlet)并在web.xml文件中输入以下代码:<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"></web-app>第二步:测试web应用在serv-app文件中创建一个test.html文件,里边任意输入一些内容(比如输入hello),此时我们要停止tomcat服务器,根据上面所提到的shutdown.bat命令(在命令窗口中输入该命令),因为tomcat服务器运行的时候会去检测 webapps 文件下的web应用,所以,当对web应用进行修改的时候最好先停止服务器,等修改结束后,在启动服务器.现在启动服务器,在命令窗口中输入startup.bat命令(需要注意的是,如果你的命令窗口时从新打开的,那么必须要进到tomcat目录下的 bin目录,然后在输入startup.bat命令,可以参看上面配置tomcat服务器的图),成功启动tomcat服务器后,在地址栏输入http://localhost:8080/serv-app/test.html如果可以显示HELLO则说明web应用配置成功。
nginx_+tomcat集群配置
Nginx+Tomcat 集群配置Nginx对处理静态文件(如html、jpg等)的性能十分优异,具有高并发、占用资源低、扩展性强的特点。
Nginx的这个特点,对于专注于处理java的tomcat来说,可以说是个完美的搭档。
生产环境下,已经取代早期的apache+tomcat,并且还可以使用Nginx结合jvm_router这个国人开发的扩展,做下tomcat的集群。
配置环境两台服务器:192.168.0.239 192.168.0.240操作系统:CentOS 6.3Jdk:jdk-6u35-linux-x64.binTomcat :6.0.35Nginx :nginx-1.2.4安装jdk在第一台机器,192.168.0.239(以后称为A)安装JDK1.使用命令chmod +x jdk-6u35-linux-x64.bin 赋予jdk执行权限。
2.安装jdk,使用命令:./jdk-6u35-linux-x64.bin3.配置环境变量,拷贝jdk的目录到/usr下,/etc/profile文件的末尾添加如下:export JAVA_HOME=/usr/jdkexport PATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/ tools.jar4.使用命令:source /etc/profile ,使配置即刻生效。
然后测试jdk是否成功:java -version5.第二台服务器同上安装jdk安装Tomcat1.下载apache-tomcat-6.0.35.tar.gz,解压到/usr目录下,并重命名为tomcat2.进入/usr/tomcat的bin目录下,使用命令chmod +x ./* 给bin目录下的文件,赋予可执行权利。
3.进入/usr/tomcat/conf目录下,编辑tomcat-users.xml文件,增加admin管理员,并加入manager组。
JAVA_OPTS设置详解及Tomcat配置参数配置
JAVA_OPTS设置详解及Tomcat配置参数配置1、⽂件位置打开bin/catalina.bat⽂件⽰例:JAVA_OPTS="-Xms256m -Xmx512m -Xss256K -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=test"1)给出了对内存的配置。
2)以及spring boot 使⽤spring.profiles.active来分区配置。
项⽬的部署,开发环境、测试环境、预发布环境、⽣产环境的环境配置是不同的;⽐如,数据库配置,在开发的时候,我们⼀般⽤测试数据库,⽽在⽣产环境的时候,我们是⽤正式的数据,这时候,我们可以利⽤profile在不同的环境下配置⽤不同的配置⽂件或者不同的配置.Spring boot允许你通过命名约定按照⼀定的格式(application-{profile}.properties)来定义多个配置⽂件,然后通过在application.properyies通过spring.profiles.active来具体激活⼀个或者多个配置⽂件,如果没有没有指定任何profile的配置⽂件的话,spring boot默认会启动application-default.properties。
2、JAVA_OPTS设置2.1、JAVA_OPTS ,顾名思义,是⽤来设置JVM相关运⾏参数的变量。
JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"-server: ⼀定要作为第⼀个参数,在多个CPU时性能佳*。
-Xms:初始Heap⼤⼩,使⽤的最⼩内存,cpu性能⾼时此值应设的⼤⼀些。
-Xmx:java heap最⼤值,使⽤的最⼤内存。
上⾯两个值是分配JVM的最⼩和最⼤内存,取决于硬件物理内存的⼤⼩,建议均设为物理内存的⼀半。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#负载均衡控制器类型,lbfactor 是负载平衡因数(Load Balance Factor) worker.controller.type=lb #指定分担请求的 tomcat 列表 worker.controller.balanced_workers=tomcat1,tomcat2 #粘性 session(默认是打开的) 当该属性值=true(或 1)时,代表 session 是粘性的,即同一 session 在集群中的同一个节点上处理,session 不跨越节点。在集群环境中,一般将该值设 置为 false worker.controller.sticky_session=false #设置用于负载均衡的 server 的 session 可否共享 worker.controller.sticky_session_force=1 最后在修改 C:\cluster\httpd\conf\httpd.conf,在其最后添加如下内容: Include conf/mod_jk.conf 到此负载均衡服务器配置完成! 4.配置 tomcat 修改 C:\cluster\tomcat1\conf\server.xml, 在配置<Engine>中添加 jvmRoute="tomcat1",名称与 worker.controller.balanced_workers=tomcat1,tomcat2 对应
Tomcat 集群配置
集群结构
Tomcat 1
负载均衡服务 器
Tomcat 2
Session 同步
Tomcat n
负载均衡服务器
在一些大公司采用 F5 负载均衡交换机作为负载均衡服务器,然后将请求转发给 tomcat, 但是 F5 设备动辄几十万,所以一些小公司采用采用开源的 apache 或 Nginx 来实现负载均 衡,本文采用 Apache + mod_jk + tomcat 来实现 tomcat 集群的负载均衡的
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"/> <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"/> </Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> <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"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster> 第一个 tomcat 配置完成
பைடு நூலகம்软件
Apache 是 apache 的 http 服务器,用于消息转发
mod_jk 也叫 JK,这是一款 Apache/IIS 用来连接后台 Tomcat 的连接器,支持 集群和负载均衡。
环境
本教程为了方便教学,仅在一台 windows 系统下安装这个集群.详情是:安装一个 apache 的 http 程序,两个 tomcat 程序
4.配置 mod_jk 和 apache 将下载后的 mod_jk-1.2.31-httpd-2.2.3.so 放到 C:\cluster\httpd\modules 目录下 然后在 C:\cluster\httpd\conf 目录下创建一个 mod_jk.conf 在 mod_jk.conf 中添加如下内容: #加载 mod_jk Module LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so #指定 workers.properties 文件路径 JkWorkersFile conf/workers.properties #指定那些请求交给 tomcat 处理,"controller"为在 workers.propertise 里指定的负载分配控制 器名 JkMount /* controller 然后在 C:\cluster\httpd\conf 创建一个 workers.properties 的文件,添加如下内容 #server worker.list = controller #========tomcat1======== #ajp13 端口号,在 tomcat 下 server.xml 配置,默认 8009 worker.tomcat1.port=8009 #tomcat 的主机地址,如不为本机,请填写 ip 地址 worker.tomcat1.host=localhost #协议类型 worker.tomcat1.type=ajp13 #server 的加权比重, 值越高, 分得的请求越多。 lbfactor 是负载平衡因数(Load Balance Factor) worker.tomcat1.lbfactor=1 #========tomcat2======== worker.tomcat2.port=9009 worker.tomcat2.host= localhost worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor=1 #========controller,负载均衡控制器========
3.下载 mod_jk mod_jk 版本: jk-1.2.31 下载地址: /dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/mod_jk-1.2.31-httpd-2.2.3.so
安装步骤
1. 安装 Apache 服务器 版本:2.2.25 下载地址: /dist/httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi 需要注意的是:
当安装到出现上面的信息时,可随意添加合法的域名和邮箱地址 之后选择安装路径,这里是安装在 C:\cluster\httpd 目录下
Apache 安装完成后在浏览器中输入 http://localhost/ ,如果出现下图说明安装成功
2. 安装 tomcat 版本:7.0.8 下载地址:/dist/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.zip 将 tomcat 解压到 C:\cluster\目录下, 然后重命名为 tomcat1, 再复制粘贴一份重命名为 tomcat2 效果如下图:
然后再<Engine>下添加如下内容: <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"