设为首页 收藏本站
查看: 1005|回复: 0

[经验分享] Tomcat6优化,server.xml属性说明

[复制链接]

尚未签到

发表于 2016-11-9 05:45:26 | 显示全部楼层 |阅读模式
Tomcat6优化,server.xml属性说明
2010年04月16日 星期五 14:52
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,目前最新版本是6.x,相对5.x性能提升很多,主要优化了内存使用,增强IO能力,重新构造集群功能。 
     近期对Tomcat6.x作深入学习,参考上述声明的Tomcat全攻略,由于笔者是2001年针对Tomcat4.x所写,故参考之并针对Tomcat6.x做了总结,形成此篇学习笔记,希望对学习的人有所帮助,本文涵盖了:Tomcat目录、Server.xml元素讲解,数据库连接池配置、线程池配置、虚拟目录配置。关于如何下载、安装、运行Tomcat略,请google,相信有详细的文章讲述。
 
 
tomcat的目录结构如下:

  
目录名
  
简介
  
bin
  
存放启动和关闭tomcat脚本
  
conf
  
包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xml
  
work
  
存放jsp编译后产生的class文件
  
webapp
  
存放应用程序示例,以后你要部署的应用程序也要放到此目录
  
logs
  
存放日志文件
  
lib
  
这三个目录主要存放tomcat所需的jar文件
 
 
 
server.xml配置简介
 

  
元素名
  
属性
  
解释
  
server
  
port
  
指定一个端口,这个端口负责监听关闭tomcat的请求
  
shutdown
  
指定向端口发送的命令字符串
  
GlobalNamingResources
   
服务器的全局JNDI资源,可以有子标签<Resource></Resource>
  
Executor(线程池,一个或多个Connector可以共享此线程池)
  
name
  
线程池名称,名称必须唯一
  
namePrefix
  
线程的名字前缀,用来标记线程名字的,这样每个线程就用这个前缀加上线程编号了,比如 catalina-exec-1 、catalina-exec-2
  
maxThreads
  
允许的最大线程池里的线程数量,默认是200,大的并发应该设置的高一些,反正只是限制而已,不占用资源
  
minSpareThreads
  
最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源
  
maxIdleTime
  
最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源
  
threadPriority
  
线程的等级。默认是Thread.NORM_PRIORITY
  
service
  
name
  
指定service的名字
  
Connector (表示客户端和service之间的连接)
  
port
  
指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
  
minProcessors
  
服务器启动时创建的处理请求的线程数
  
maxProcessors
  
最大可以创建的处理请求的线程数
  
enableLookups
  
如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
  
redirectPort
  
指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
  
acceptCount
  
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
  
connectionTimeout
  
指定超时的时间数(以毫秒为单位)
  
Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求)
  
name
 
  
defaultHost
  
指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
  
jvmRoute
 
  
host (表示一个虚拟主机、并且可以包含Context子节点配置虚拟目录)
  
name
  
指定主机名
  
appBase
  
应用程序基本目录,即存放应用程序的目录
  
unpackWARs
  
如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
  
autoDeploy
  
自动部署
  
xmlValidation
  
是否验证xml
  
xmlNamespaceAware
 
  
Realm (表示存放用户名,密码及role的数据库)
  
className
  
指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
  
Context(host子节点配置虚拟目录)
  
path
  
虚拟目录名称
  
docBase
  
物理路径
  
Debug
  
Debug模式
  
Reload
  
True 重新加载,修改后自动加载
 
上面我们讲述了server .xml个元素的含义,下面我们给出详细示例
 
Tomcat数据库连接池配置如下:
server.xml配置Resource
Xml代码 DSC0000.gif
 

  • <Resource name="jdbc/ExampleDB" auth="Container" type="javax.sql.DataSource"  
  •                maxActive="100" maxIdle="30" maxWait="10000"  
  •                username="APP" password="APP" driverClassName="org.apache.derby.jdbc.ClientDriver"  
  •                url="jdbc:derby://localhost:1527/springside-example;create=true"/>  
  
<Resource name="jdbc/ExampleDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="APP" password="APP" driverClassName="org.apache.derby.jdbc.ClientDriver" url="jdbc:derby://localhost:1527/springside-example;create=true"/>
 
context.xml文件增加:
 
Xml代码
 

  • <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  •        
  •      <ResourceLink name="jdbc/ExampleDB"    global="jdbc/ExampleDB"    type="javax.sql.DataSource"/>  
  •       
  
<WatchedResource>WEB-INF/web.xml</WatchedResource> <ResourceLink name="jdbc/ExampleDB" global="jdbc/ExampleDB" type="javax.sql.DataSource"/>
 
Tomcat共享线程池配置:
取消Executor注释,修改连接数至自己合适的数值既可。
 
Xml代码
 

  • <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"   
  •         maxThreads="200" minSpareThreads="100" maxIdleTime="60000"/>  
  
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="200" minSpareThreads="100" maxIdleTime="60000"/>
 
executor="tomcatThreadPool" 标明此连接使用上面配置的名称为tomcatThreadPool的连接池,无属性共享连接不会生效 protocol表示使用的是 http协议 端口号为8080
Java代码
 

  • <Connector port="8080" protocol="HTTP/1.1" redirectPort="8443"   
  •                 connectionTimeout="20000"   
  •                 executor="tomcatThreadPool"  
  •                 acceptCount="100"  
  •                 useBodyEncodingForURI="true"  
  •                 enableLookups="false"  
  •                  />  
  
<Connector port="8080" protocol="HTTP/1.1" redirectPort="8443"                connectionTimeout="20000"                executor="tomcatThreadPool"               acceptCount="100"               useBodyEncodingForURI="true"               enableLookups="false"                />
  
虚拟目录配置:
在<host></host>之间增加如下
 
<!-- 配置虚拟目录,例如:%09http://localhost:8080 -->
 
Xml代码
 

  • <Context path="/" docBase="D:\workspace\code\HBJH\web"></Context>  
  
<Context path="/" docBase="D:\workspace\code\HBJH\web"></Context>


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-297618-1-1.html 上篇帖子: [MS SQL]禁用触发器 下篇帖子: shopex显示sql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表