tomcat常用配置详解和优化方法南京市艾瑞职业培训学校

1目录结构/bin:脚本文件目录。/common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载)。/conf:存放配置文件,最重要的是server.xml。/logs:存放日志文件。/server/webapps:来管理Tomcat-web服务用的。仅对TOMCAT可见,对所有的WEBAPP都不可见(使用Catalina类加载器加载)。/shared/lib:仅对所有WEBAPP可见,对TOMCAT不可见(使用Shared类加载器加载)。/temp:Tomcat运行时候存放临时文件用的。/webapps:web应用发布目录。/work:Tomcat把各种由jsp生成的servlet文件放在这个目录下。删除后,启动时会自动创建。2配置文件server.xml:主要的配置文件。web.xml:缺省的webapp配置,WEB-INF/web.xml会覆盖该配置。context.xml:不清楚跟server.xml里面的context是否有关系。server.xml配置server标签port:指定一个端口,这个端口负责监听关闭tomcat的请求。shutdown:指定向端口发送的命令字符串。service标签name:指定service的名字。Connector(表示客户端和service之间的连接)标签

defaultorg.apache.catalina.servlets.DefaultServletdebug0listingstrue13)访问日志设置在server.xml中加入

这样访问日志会记录到Logs中。

4)修改用户名、密码conf/tomcat-users.xml5)屏蔽后台管理入口方法一:从控制用户和权限着手。废掉要管理权限的用户就可以了。方法二:将conf/Catalina/localhost/manager.xml改名。6)配置403,404,500错误页面默认情况下,报出HTTP错误的时候会暴露tomcat版本号。如果不想暴露的话,就需要重新定义错误跳转页面。

优化内存,主要是在bin/catalina.bat/sh配置文件中进行。linux上,在catalina.sh中添加:

JAVA_OPTS="-server-Xms1G-Xmx2G-Xss256K-Djava.awt.headless=true-Dfile.encoding=utf-8-XX:MaxPermSize=256m-XX:PermSize=128M-XX:MaxPermSize=256M"其中:

?-server:启用jdk的server版本。?-Xms:虚拟机初始化时的最小堆内存。?-Xmx:虚拟机可使用的最大堆内存。#-Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落?-XX:PermSize:设置非堆内存初始值,默认是物理内存的1/64。?-XX:MaxNewSize:新生代占整个堆内存的最大值。?-XX:MaxPermSize:Perm(俗称方法区)占整个堆内存的最大值,也称内存最大永久保留区域。1)错误提示:java.lang.OutOfMemoryError:Javaheapspace

Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错误,OutofMemory(系统内存不足)的异常,从而导致客户端显示500错误,一般调整Tomcat的-Xms和-Xmx即可解决问题,通常将-Xms和-Xmx设置成一样,堆的最大值设置为物理可用内存的最大值的80%。

setJAVA_OPTS=-Xms512m-Xmx512m2)错误提示:java.lang.OutOfMemoryError:PermGenspace

PermGenspace的全称是PermanentGenerationspace,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGenspace中,它和存放类实例(Instance)的Heap区域不同,GC(GarbageCollection)不会在主程序运行期对PermGenspace进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGenspace错误,这种错误常见在web服务器对JSP进行precompile的时候。如果你的WEBAPP下都用了大量的第三方jar,其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。解决方法:

2、连接数优化:

#优化连接数,主要是在conf/server.xml配置文件中进行修改。

2.1、优化线程数

找到Connectorport="8080"protocol="HTTP/1.1",增加maxThreads和acceptCount属性(使acceptCount大于等于maxThreads),如下:

其中:

?maxThreads:tomcat可用于请求处理的最大线程数,默认是200?minSpareThreads:tomcat初始线程数,即最小空闲线程数?maxSpareThreads:tomcat最大空闲线程数,超过的会被关闭?acceptCount:当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理.默认1002.2、使用线程池

在server.xml中增加executor节点,然后配置connector的executor属性,如下:

其中:

?ps-ef|greptomcat查看tomcat的进程ID,记录ID号,假设进程ID为10001?lsof-p10001|wc-l查看当前进程id为10001的文件操作数?使用命令:ulimit-a查看每个用户允许打开的最大文件数3、TomcatConnector三种运行模式(BIO,NIO,APR)

3.1、三种模式比较:

1)BIO:一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。Tomcat7或以下在Linux系统中默认使用这种方式。

2)NIO:利用Java的异步IO处理,可以通过少量的线程处理大量的请求。Tomcat8在Linux系统中默认使用这种方式。Tomcat7必须修改Connector配置来启动(conf/server.xml配置文件):

3.2、apr模式

安装apr以及tomcat-native

yum-yinstallaprapr-devel进入tomcat/bin目录,比如:

cd/opt/local/tomcat/bin/tarxzfvtomcat-native.tar.gzcdtomcat-native-1.1.32-src/jni/native./configure--with-apr=/usr/bin/apr-1-configmake&&makeinstall#注意最新版本的tomcat自带tomcat-native.war.gz,不过其版本相对于yum安装的apr过高,configure的时候会报错。

解决:yumremoveaprapr-devel–y,卸载yum安装的apr和apr-devel,下载最新版本的apr源码包,编译安装;或者下载低版本的tomcat-native编译安装

安装成功后还需要对tomcat设置环境变量,方法是在catalina.sh文件中增加1行:

修改8080端对应的conf/server.xml

一、Tomcat的缺省是多少,怎么修改

Tomcat的缺省端口号是8080.修改Tomcat端口号:

1.找到Tomcat目录下的conf文件夹

2.进入conf文件夹里面找到server.xml文件

3.打开server.xml文件

4.在server.xml文件里面找到下列信息

maxThreads=”150″minSpareThreads=”25″maxSpareThreads=”75″enableLookups=”false”redirectPort=”8443″acceptCount=”100″connectionTimeout=”20000″disableUploadTimeout=”true”/>

5.把port=”8080″改成port=”8888″,并且保存

enableLookups=”false”URIEncoding=”UTF-8″/>

二、tomcat如何优化?

1、优化连接配置.这里以tomcat7的参数配置为例,需要修改conf/server.xml文件,修改连接数,关闭客户端dns查询。

参数解释:

URIEncoding=”UTF-8″:使得tomcat可以解析含有中文名的文件的url,真方便,不像apache里还有搞个mod_encoding,还要手工编译

maxSpareThreads:如果空闲状态的线程数多于设置的数目,则将这些线程中止,减少这个池中的线程总数。

minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数。

enableLookups:这个功效和Apache中的HostnameLookups一样,设为关闭。

maxThreads:maxThreadsTomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数,即最大并发数。

acceptCount:acceptCount是当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,如果这个队列也满了,就直接refuseconnection

通常Windows是1000个左右,Linux是2000个左右。

useURIValidationHack:

我们来看一下tomcat中的一段源码:

【security】

if(connector.getUseURIValidationHack()){

Stringuri=validate(request.getRequestURI());

if(uri==null){

res.setStatus(400);

res.setMessage(“InvalidURI”);

thrownewIOException(“InvalidURI”);

}else{

req.requestURI().setString(uri);

//RedoingtheURIdecoding

req.decodedURI().duplicate(req.requestURI());

req.getURLDecoder().convert(req.decodedURI(),true);

可以看到如果把useURIValidationHack设成”false”,可以减少它对一些url的不必要的检查从而减省开销。

enableLookups=”false”:为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值。

disableUploadTimeout:类似于Apache中的keeyalive一样

给Tomcat配置gzip压缩(HTTP压缩)功能

compression=”on”compressionMinSize=”2048″compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”

HTTP压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML,CSS,Javascript,Text,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP,JSP,ASP,Servlet,SHTML等输出的网页也能进行压缩,压缩效率惊人。

1)compression=”on”打开压缩功能

2)compressionMinSize=”2048″启用压缩的输出内容大小,这里面默认为2KB

3)noCompressionUserAgents=”gozilla,traviata”对于以下的浏览器,不启用压缩

4)compressableMimeType=”text/html,text/xml”压缩类型

答:将端口号设置为443,即可通过域名直接访问网站

好了,所有的Tomcat优化的地方都加上了。

2、优化JDK

Tomcat默认可以使用的内存为128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件$CATALINA_HOME/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS=”‘$JAVA_OPTS”-Xms[初始化内存大小]-Xmx[可以使用的最大内存]

设置环境变量:exportJAVA_OPTS=””$JAVA_OPTS”-Xms[初始化内存大小]-Xmx[可以使用的最大内存]”

一般说来,你应该使用物理内存的80%作为堆大小。如果本机上有Apache服务器,可以先折算Apache需要的内存,然后修改堆大小。建议设置为70%;建议设置[[初始化内存大小]等于[可以使用的最大内存],这样可以减少平凡分配堆而降低性能。

本例使用加入环境变量的方式:

#vi/etc/profile

加入:exportJAVA_OPTS=””$JAVA_OPTS”-Xms700—Xmx700

#source/etc/profile

【参数说明】

-Xmx是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。

-Xss是指设定每个线程的堆栈大小。这个就要依据你的程序,看一个线程大约需要占用多少内存,可能会有多少线程同时运行等。

-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64。

-XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

三、tomcat有那几种Connector运行模式?

1)bio

默认的模式,性能非常低下,没有经过任何优化处理和支持.

2)nio

利用java的异步io护理技术,noblockingIO技术.

想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为

3)apr

安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.

Tomcat5

Tomcat作为Web服务器,它的处理性能直接关系到用户体验,下面是几种常见的优化措施:

一、掉对web.xml的监视,把jsp提前编辑成Servlet。有富余物理内存的情况,加大tomcat使用的jvm的内存

二、服务器资源服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。(1)对于高并发情况下会有大量的运算,那么CPU的速度会直接影响到处理速度。(2)内存在大量数据处理的情况下,将会有较大的内存容量需求,可以用-Xmx-Xms-XX:MaxPermSize等参数对内存不同功能块进行划分。我们之前就遇到过内存分配不足,导致虚拟机一直处于fullGC,从而导致处理能力严重下降。(3)硬盘主要问题就是读写性能,当大量文件进行读写时,磁盘极容易成为性能瓶颈。最好的办法还是利用下面提到的缓存。

三、利用缓存和压缩对于静态页面最好是能够缓存起来,这样就不必每次从磁盘上读。这里我们采用了Nginx作为缓存服务器,将图片、css、js文件都进行了缓存,有效的减少了后端tomcat的访问。另外,为了能加快网络传输速度,开启gzip压缩也是必不可少的。但考虑到tomcat已经需要处理很多东西了,所以把这个压缩的工作就交给前端的Nginx来完成。除了文本可以用gzip压缩,其实很多图片也可以用图像处理工具预先进行压缩,找到一个平衡点可以让画质损失很小而文件可以减小很多。曾经我就见过一个图片从300多kb压缩到几十kb,自己几乎看不出来区别。

四、采用集群单个服务器性能总是有限的,最好的办法自然是实现横向扩展,那么组建tomcat集群是有效提升性能的手段。我们还是采用了Nginx来作为请求分流的服务器,后端多个tomcat共享session来协同工作。

五、优化tomcat参数这里以tomcat7的参数配置为例,需要修改conf/server.xml文件,主要是优化连接配置,关闭客户端dns查询。

五、Tomcat部署项目的三种方法

目录

1、下载Tomcat服务器

2、启动并部署Tomcat服务器

3、Tomcat的目录结构

4、部署项目的第一种方法(项目直接放入webapps目录中)

5、部署项目的第二种方法(修改conf/server.xml文件)

6、部署项目的第三种方法(apache-tomcat-7.0.52confCatalinalocalhost)

①、解压tomcat安装包到一个非中文目录下

②、配置环境变量。JAVA_HOME(指向JDK安装的根目录)

③、双击apache-tomcat-6.0.16in目录下的startup.bat,启动服务器(如果一闪而过,那就是没有配置JAVA_HOME的环境变量)

注意:Tomcat启动不了的时候注意配置JAVA_HOME:C:ProgramFilesJavajdk1.6.0_43这是安装JDK的根目录

①、打开tomcat下conf/server.xml,在标签之间输入项目配置信息

path:浏览器访问时的路径名

docBase:web项目的WebRoot所在的路径,注意是WebRoot的路径,不是项目的路径。其实也就是编译后的项目

reloadble:设定项目有改动时,tomcat是否重新加载该项目

②、双击startup.bat,启动tomcat服务器,然后在浏览器输入访问的项目名称路径

①、进入到apache-tomcat-7.0.52confCatalinalocalhost目录,新建一个项目名.xml文件

②、在那个新建的xml文件中,增加下面配置语句(和上面的是一样的,但是不需要path配置,加上也没什么用)

③、在浏览器输入路径:localhost:8080/xml文件名/访问的文件名总结:

①、第一种方法比较普通,但是我们需要将编译好的项目重新copy到webapps目录下,多出了两步操作

②、第二种方法直接在server.xml文件中配置,但是从tomcat5.0版本开始后,server.xml文件作为tomcat启动的主要配置文件,一旦tomcat启动后,便不会再读取这个文件,因此无法再tomcat服务启动后发布web项目

③、第三种方法是最好的,每个项目分开配置,tomcat将以\conf\Catalina\localhost目录下的xml文件的文件名作为web应用的上下文路径,而不再理会中配置的path路径,因此在配置的时候,可以不写path。

通常我们使用第三种方法

关于我们

课程培训

校区联系方式

025-83403836

总部地址:南京市玄武区苏园路6号江苏软件园5栋3楼固话:025-83403836

大连地址:大连市沙河口区数码广场3号10号楼1011室固话:0411-39776977

太原地址:太原市小店区平阳路街道南内环街1号金茂国际数码中心A座17楼A固话:035-18720781

THE END
1.西安源码时代培训联系电话/地址西安源码时代把勇于担当、乐于奉献、善于创新、勇往直前作为行事准则,把“让每一名学员高薪就业”当做奋斗目标,力求让前来提升的年轻人有所收获。课程导航 java培训 web前端培训 西安源码时代培训 培训项目:Java工程师培训、H5前端开发培训、UI/UE设计培训、产品经理培训、软件测试培训、新媒体运营 学校简介:西安...https://www.qinxue365.com/member/xadd-contact.html
2.培训学校网站模板整站源码专业建站,就用米拓!培训学校响应式网站模板,网站排名更靠前,使用米拓企业建站系统轻松搞定电脑+平板+手机+微官网+小程序(微信、百度、支付宝、字节跳动、QQ、360)10合1企业官网,一键开通,会打字就会建网站!https://www.metinfo.cn/product/3839.html
3.漂亮学校美术少儿培训网站模板源码企业网站模板网为您提供漂亮学校美术少儿培训网站模板,漂亮学校美术少儿培训网站模板源码,希望符合您的需求,您还可以找我们定制相关模板!http://www.mubanwan.com/wzmb/79690.html
4....pbootcms中小学教育培训机构网站模板绿色小学学校网站源码下载针对日本市场推出Link移动 VR 头盔:U11专属2018-01-02 普及太快!我们该不该对机器人征税呢2018-01-02 解放人类的双手 机器人尝试自主学习抓取物体2018-01-02 从肉体变机器,我们这代人或能见证人类进化加2018-01-02 关于我们+ 更多 拥有10年网站开发设计经验,是由一群服务于互联网行业已久的精英组成,拥有精湛...http://www.zhongqingjy.com/
5.PHP大学官网招生报考网站源码素材描述:html5蓝色大气响应式学院网站源码,大学技术学校官网招生报考网站源码,PHP响应式勘察设计院协会类织梦教育培训类源码下载。 标签:大学教育学校 基础属性 内核织梦DEDECMS 语言PHP 数据库MySql 兼容PC\WAP 大小未知 源文件完全开源 友情提示:本源码卖的是模板,织梦dedecms框架须购买商业版权 ...https://www.sucainiu.com/6384.html
6.前端开发培训前端开发培训机构(学校)本页由天才教育网提供前端开发培训相关信息,包含前端开发培训学校有哪些,前端开发培训班课程价格、开班时间,前端开发培训相关文章等信息https://www.edutt.com/quanguo/qdkf/
7.学校网站模板学校网站源码下载PageAdmin提供学校网站模板,模板编号:14,免费学校网站模板源码下载,学校网站模板为网站建设和建站提供程序模板源码,节约学校网站模板网站制作成本https://www.pageadmin.net/moban/14.cshtml
1.教育培训行业教育机构企业公司教育机构网站源码APP开发定制知识付费平台系统源码教学课程付费培训机构在线教育APP教学小程序2024-11-25 家政APP平台同城家政小程序开发上门预约服务系统源码2024-12-03 家政APP软件定制系统同城预约上门服务小程序开发2024-12-03 同城预约上门维修服务上门家政维修平台搭建软件开发2024-12-03 同城预约家政服务小程序上门预约系统软件定制源码搭建2024-...https://m.11467.com/blog/d9329549.htm
2.培训机构网站源码培训机构网站源码v2.0.2.27官方网站:暂无 软件截图 软件简介 培训机构网站源码为各类培训机构提供了一套安装即可使用的网站程序,独特新颖的排版方式,丰富多样的展现样式,能够将培训机构的优势充分展示出来,从而增加家长或学员,选择培训机构的可能。 【主要功能介绍】 通过多个独立单页的方式,可以更为全面的介绍培训机构环境、团队成员、机构优势等信...https://xiazai.zol.com.cn/detail/71/702116.shtml
3.教育培训系统源码SAAS教培系统源码培训学校系统源码教育培训系统源码 SAAS教培系统源码 培训学校系统源码 系统支持k12教育、舞蹈、书法、武术、美术、音乐、瑜伽、琴行、球类、跆拳道、游泳辅导班等线下辅导班艺术类培训机构使用,开发语言:PHP + MySQL。 功能介绍: 总后台: 用户管理, 学校管理, 员工管理, 应用中心, ...https://blog.csdn.net/xiaohua1992/article/details/139930246
4.在线教育培训学校网站设计源码必备这是一款在线教育培训学校网站设计源码必备,充分响应式页面,支持明暗模式,所有元素可根据用户设备的屏幕大小自行调整,供大家参考。https://www.17sucai.com/pins/59647.html
5....小学教育培训机构网站模板绿色小学学校网站源码下载(PC+移动端)pbootcms中小学教育培训机构网站模板 绿色小学学校网站源码下载 PbootCMS内核开发的网站模板,该模板适教育培训机构网站、小学学校网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可; 自适应,同一个后台,数据即时同步,简单适用!附带测https://www.nzw6.com/2747.html
6.学校网站建设培训学校网站建设寻找学校网站建设方案?云南才力提供学校网站建设,建设学校网站,学校建设网站,培训学校网站建设,建设职业学校网站及学校网站建设方案书,昆明建设学校网站价格优惠。https://www.yncaili.com/xx/
7.院校网站模板院校网站源码下载打造专属学校形象,学校网站模板助力校时间:2023-10-24 学校网站是学校展示自身形象和吸引潜在学生的重要渠道。易优CMS作为一款功能强大、易于使用的内容管理系统,提供了多款专为学校设计的网站模板,可以帮助学校打造专属形 选择适合的职业技能培训学校网站源码模时间:2023-10-17 ...https://www.eyoucms.com/mb/yuanxiao.html
8....式培训学校电脑教育教学课程pbcms模板网站源码H5手机版pbootcms免费下载模板响应式培训学校电脑教育教学课程pbcms模板网站源码H5手机版 pbootcms内核开发的网站模板,该模版适用于教育培训机构企业网站,电脑培训学校教学课程公司pbcms模板,当然其他行业也可以做,只需要把文字图片https://www.pbku.cn/3539.html
9.源码时代IT培训源码时代培训学校致力于打造中国高端IT培训品牌 ,源码人把勇于担当、乐于奉献、善于创新、勇往直前作为行事准则,把“让每一名学员高薪就业”当做奋斗目标,力求让前来提升的年轻人有所收获, 成为中国IT教育培训领跑者。https://www.keedu.cn/school?schid=9001
10.PbootCMS培训机构培训学校网站模板源码介绍 PbootCMS内核开发的网站模板,该模板适用于培训学校网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可。 模板特色 手工书写DIV+CSS、代码精简无冗余。 自适应结构,全球先进技术,高端视觉体验。 SEO框架布局,栏目及文章页均可独立设置标题/关键词/描述。 https://www.landafu.com/90659.html
11.「源码时代IT培训学校工资待遇怎么样」四川源码时代科技有限公司薪酬...说明:源码时代IT培训学校工资统计来自于近一年91条工资数据,其中“其他类”职位最多,占100%,数据取决于岗位样本。仅供参考。 ¥10-20K 72.6%的岗位拿 ? 岗位平均工资 说明:岗位平均工资是以企业发布的招聘岗位为分析依据,建议结合职位类型及学历地区经验等查看。 https://www.jobui.com/company/14548978/salary/
12.状元易培训学校管理系统简单免费够用的培训学校管理软件...状元易是一款免费的培训学校管理系统、培训学校管理软件、排课系统。着重于解决培训学校实际运用场景中,人性化的使用流程。状元易培训学校管理系统、培训学校管理软件、排课系统,简单易学,上手快!https://www.zyyi.cc/
13.成都培训机构(学校)成都培训班汇上优课-成都培训网是专业的教育培训机构推荐平台!为学员提供成都培训机构,成都培训学校,成都培训班相关的培训课程费用,师资,校区,地址,优惠,电话等信息。https://m.youkee.com/
14.天津seo管理网站学校网站源码天津seowww.rxjzg.cn管理网站var express = require('express');②、简写变体,如北京大学与北大。elif area =="浦口":no="320111"ScientificResearch Publishing(科研出版社,简称SRP)是一家国际综合性开源学术期刊出版机构。分别使用两个微信号登录游戏,抓登录的请求,http://www.rxjzg.cn/rxjzg/735822.html