Tomcat server.xml详解

来源:互联网 发布:qq音乐三巨头知乎 编辑:程序博客网 时间:2024/06/05 16:24
部分原文地址:http://www.blogjava.net/baoyaer/articles/107278.html    http://blog.csdn.net/forest_boy/article/details/50034829

嵌套:
<Server>  <Listener />  <GlobaNamingResources>  </GlobaNamingResources  <Service>  <Connector />  <Engine>  <Logger />  <Realm />  <host>  <Logger />  <Context />  </host>  </Engine>  </Service> </Server>

标签及参数含义:
元素名

 

 

属性

 

 

解释

 

 

serverport指定一个端口,这个端口负责监听关闭tomcat的请求shutdown指定向端口发送的命令字符串servicename指定service的名字Connector(表示客户端和service之间的连接)port指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求minSpareThreads最小空闲线程。服务器启动时创建的处理请求的线程数(默认值10)maxSpareThreads最大空闲线程。一旦创建的线程数多于这个值,tomcat就会开始关闭没有使用的线程。该参数应小于maxThreads(默认值200)enableLookups如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址(若为true,获取客户端主机名需要查询远程DNS服务器,可能会造成很大延迟,影响性能,建议为false;默认为true)redirectPort指定服务器正在处理https请求时收到了一个SSL传输请求后重定向的端口号acceptCount指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理(默认100)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.001-10-04.txtRealm(表示存放用户名,密码及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响应代码,发送的字节数。combined方式比common方式记录的值更多

Connector还包括参数:

maxThreads 线程池最大线程数,默认为150

protocol="HTTP/1.1" 协议名称


Executor是共享线程池,即多个Connector共享该线程池。优势不必多说。

为了让连接器使用Executor的线程池,则在server.xml文件中,Executor必须列示在Connector之前。

重要参数说明:

  属性:className、含义:Executor实现的完全限定的Java类名、默认值:org.apache.catalina.core.StandardThread-Executor。


   属性:daemon、含义:决定这一Executor的线程是否应该为后台线程。如果JVM中的所有其他非后台线程都结束了,则后台线程结束。


   要获得有关后台线程的详细解释,参见java.lang.Thread的Java 1.5(及更高版本)Javadoc网页、默认值:false。


   属性:name、含义:共享线程池的名字。这是Connector为了共享线程池要引用的名字。该名字必须唯一、默认值:None;需要的参数。


   属性:namePrefix、含义:在JVM上,每个运行线程都可以有一个name 字符串。这一属性为线程池中每个线程的name字符串设置了一个前缀,Tomcat将把线程号追加到这一前缀的后面、默认值:tomcat-exec-。



   属性:maxIdleTime、含义:在Tomcat关闭一个空闲线程之前,允许空闲线程持续的时间(以毫秒为单位)。只有当前活跃的线程数大于minSpareThread的值,才会关闭空闲线程、默认值:60000(一分钟)。


   属性:maxThreads、含义:该线程池可以容纳的最大线程数、默认值:200。


   属性:minSpareThreads、含义:Tomcat应该始终打开的最小不活跃线程数、默认值:25。


   属性:threadPriority、含义:整数值,表示线程池中所有线程的线程优先权。




原创粉丝点击