`
cuijiemin
  • 浏览: 256715 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Tomcat6优化,server.xml属性说明

    博客分类:
  • J2EE
阅读更多
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代码 Tomcat6.x目录与server.xml详解 - 冰木木 - 舒畅心情

 

  1. <Resource name="jdbc/ExampleDB" auth="Container" type="javax.sql.DataSource"  
  2.                maxActive="100" maxIdle="30" maxWait="10000"  
  3.                username="APP" password="APP" driverClassName="org.apache.derby.jdbc.ClientDriver"  
  4.                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代码 Tomcat6.x目录与server.xml详解 - 冰木木 - 舒畅心情

 

  1. <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  2.        
  3.      <ResourceLink name="jdbc/ExampleDB"    global="jdbc/ExampleDB"    type="javax.sql.DataSource"/>  
  4.       

 

<WatchedResource>WEB-INF/web.xml</WatchedResource> <ResourceLink name="jdbc/ExampleDB" global="jdbc/ExampleDB" type="javax.sql.DataSource"/>

 

Tomcat共享线程池配置:

取消Executor注释,修改连接数至自己合适的数值既可。

 

Xml代码 Tomcat6.x目录与server.xml详解 - 冰木木 - 舒畅心情

 

  1. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"   
  2.         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代码 Tomcat6.x目录与server.xml详解 - 冰木木 - 舒畅心情

 

  1. <Connector port="8080" protocol="HTTP/1.1" redirectPort="8443"   
  2.                 connectionTimeout="20000"   
  3.                 executor="tomcatThreadPool"  
  4.                 acceptCount="100"  
  5.                 useBodyEncodingForURI="true"  
  6.                 enableLookups="false"  
  7.                  />  

 

<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代码 Tomcat6.x目录与server.xml详解 - 冰木木 - 舒畅心情

 

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

 

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

分享到:
评论
1 楼 zhangna307 2011-09-22  
thanks.

相关推荐

    Tomcat 配置与优化方案详解

    Server.xml配置文件用于对整个容器进行相关的配置。 &lt;Server&gt;元素: 是整个配置文件的根元素。表示整个Catalina容器。 属性: className:实现了org.apache.catalina.Server接口的类名,标准实现类是org.apache....

    Tomcat面试专题及答案.pdf

    2)在 server.xml 文件上配置节点,设置相关的属性即可 3)通过 Catalina 来进行配置:进入到 conf\Catalina\localhost 文件下,创建一个 xml 文件,该文件的名字就是站点的名字。 编写 XML 的方式来进行设置。

    Java 面试宝典

    6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? ....................... 9 7、char 型变量中能不能存贮一个中文汉字?为什么? ................................................ 10 8...

    java面试题

    63.2.6. 并发收集器 44 63.2.7. 并行收集器 44 63.3. Sun HotSpot 1.4.1 JVM堆大小的调整 44 63.4. BEA JRockit JVM的使用 45 63.4.1. Bea JRockit JVM支持4种垃圾收集器: 46 63.5. 如何从JVM中获取信息来进行调整 ...

    jpivot学习总结.doc

    uniqueMembers 该属性用于优化产生的 SQL ,如果你知道这个级别和其父级别交叉后的值或者是维度表中给定的级别所有的值是唯一的,那么就可以设置该值为 true ,否则为 false 。 levelType 该 Level 的类型,默认...

    Activiti的安装详细过程

    build.xml”修改属性 windows.browser 的值为浏览器的启动 文件对应的位置。如我一直使用 chrome ,配置如下: &lt;property name="windows.browser" value="C:/Documents and Settings/dragon/Local Settings/...

    最新Java面试宝典pdf版

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java面试笔试资料大全

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    JAVA面试宝典2010

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java面试宝典-经典

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java面试宝典2012版

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7...

    java面试题大全(2012版)

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    java面试宝典2012

    1、Tomcat的优化经验 93 2、HTTP请求的GET与POST方式的区别 93 3、解释一下什么是servlet; 93 4、说一说Servlet的生命周期? 93 5、Servlet的基本架构 94 6、SERVLET API中forward() 与redirect()的区别? 94 7、什么...

    Java面试宝典2012新版

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

Global site tag (gtag.js) - Google Analytics