`
wu_quanyin
  • 浏览: 204914 次
  • 性别: Icon_minigender_1
  • 来自: 福建省
社区版块
存档分类
最新评论

Tomcat中server.xml的配置分析一

阅读更多

      最近查看了tomcat6的源代码,了解了里面的大概流程,对细节问题还没有深入,故想通过发表博客对tomcat进

 

行深入了解首先对server.xml进行分析,了解其中tomcat可配置的功能,对tomcat中应有的功能进行较全面的了

 

解,这样一来对后面在源代码中看到的些判断逻辑会更加清楚.

 

 

查找了下以下文章对此作了较详细的描述:

转载至:http://dcbjavaeye.iteye.com/blog/254193

 

tomcat server.xml配置详解

元素名
属性
解释
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的 前缀,这样请求的urlhttp://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差不多,其prefixsuffix属 性解释和Logger 中的一样)
className
指定Valve使用的类 名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息
directory
指定log文件存放的位 置
pattern
有两个值,common方 式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节 数。combined方式比common方式记录的值更多

<Server>元素


它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个
<Service>元素.并且它不能做为任何元素的子元素.

<Server port="8005" shutdown="SHUTDOWN" debug="0">

1>className指定实现org.apache.catalina.Server接口的类.默认值为
org.apache.catalina.core.StandardServer
2>port指定Tomcat监听 shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出
shutdown命令.该属性是必须的.
3>shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的 shutdown监听端口的字符串.该属性必须设


<Service>元素


该元素由org.apache.catalina.Service接口定义,它包含一个<Engine>元素,以及一个或多个
<Connector>,这些Connector元素共享用同一个Engine元素
   
<Service name="Catalina">
   
<Service name="Apache">

   第一个<Service>处理所有直接由Tomcat服务器接收的web客户请求.
   第二个<Service>处理所有由Apahce服务器转发过来的Web客户请求
1>className 指定实现org.apahce.catalina.Service接口的类.默认为
org.apahce.catalina.core.StandardService
2>name定义Service的名字

<Engine>元素


每个Service元素只能有一个Engine元素.元素处理在同一个<Service>中所有<Connector> 元素接收到的客
户请求.由org.apahce.catalina.Engine接口定义.
<Engine name="Catalina" defaultHost="localhost" debug="0">
1>className指定实现Engine接口的类,默认值为StandardEngine
2>defaultHost 指定处理客户的默认主机名,在<Engine>中的<Host>子元素中必须定义这一主机
3>name定义 Engine的名字
在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host>

<Host>元素


它由Host接口定义.一个Engine元素可以包含多个<Host>元素.每个<Host>的元素定义了一 个虚拟主机.它
包含了一个或多个Web应用.
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
1>className指定实现Host接口的类.默认值为StandardHost
2>appBase指定虚拟主机的目 录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果
没有此项,默认为<CATALINA_HOME>/webapps
3>autoDeploy如果此项设为true, 表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有
web应用加入进来,会自运发布这个WEB应用
4>unpackWARs如果此项设置为true,表示把WEB应用的WAR文件 先展开为开放目录结构后再运行.如果设为
false将直接运行为WAR文件
5>alias指定主机别名,可以指定多个别名
6>deployOnStartup 如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用
.如果Web应用中的server.xml没有相应的<Context>元素,将采用Tomcat默认的Context
7>name 定义虚拟主机的名字
在<Host>元素中可以包含如下子元素
<Logger>, <Realm>, <Value>, <Context>

<Context>元素


它由Context接口定义.是使用最频繁的元素.每个<Context元素代表了运行在虚拟主机上的单个Web应用.
一个<Host>可以包含多个<Context>元素.每个web应用有唯一
的一个相对应的Context代 表web应用自身.servlet容器为第一个web应用创建一个
ServletContext对象.
<Context path="/sample" docBase="sample" debug="0" reloadbale="true">
1>className指定实现Context的类,默认为StandardContext类
2>path指定访问Web 应用的URL入口,注意/myweb,而不是myweb了事
3>reloadable如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-
INF/lib目录CLASS文件的改运.如果监视到有class文件被更新,服务器自重新加载Web应用
3>cookies指 定是否通过Cookies来支持Session,默认值为true
4>useNaming指定是否支持JNDI,默认值为了true
在<Context>元素中可以包含如下元素
<Logger>, <Realm>, <Resource>, <ResourceParams>

<Connector>元素


由Connector接口定义.<Connector>元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客
户返回响应结果.
<Connector port="8080" maxThread="50" minSpareThreads="25" maxSpareThread="75"
enableLookups
="false" redirectPort="8443" acceptCount="100" debug="0"
connectionTimeout
="20000" disableUploadTimeout="true" />
<Connection port="8009" enableLookups="false" redirectPort="8443" debug="0"
protocol
="AJP/1.3" />
第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定
义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.
Connector元素共用属性
1>className 指定实现Connector接口的类
2>enableLookups如果设为true,表示支持域名解析,可以把IP地址解析为主机 名.WEB应用中调用
request.getRemoteHost方法返回客户机主机名.默认值为true
3>redirectPort指定转发端 口.如果当前端口只支持non-SSL请求,在需要安全通信的场命,将把客户请求转
发至SSL的redirectPort端口
HttpConnector元素的属性
1>className实现 Connector的类
2>port设定Tcp/IP端口,默认值为8080,如果把8080改成80,则只要输入http://localhost即可
因为TCP/IP的默认端口是80
3>address 如果服务器有二个以上ip地址,此属性可以设定端口监听的ip地址.默认情况下,端口会监听服务
器上所有的ip地址
4>bufferSize设定由端口创建的输入流的缓存大小.默认值为2048byte
5>protocol 设定Http协议,默认值为HTTP/1.1
6>maxThreads设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应 客户请求的最大数
目.默认值为200
7>acceptCount设定在监听端口队列的最大客户请求数量,默认值为10.如果队列已满,客户必须等 待.
8>connectionTimeout定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间
JkConnector 的属性
1>className实现Connector的类
2>port设定AJP端口号
3>protocol 必须设定为AJP/1.3

以上如果有不够全面的话还可以通过:
官方网档中的%CATALINA_HOME%/docs/config进行了全面详细的描述.可从中根据自己的需求进行配置.

 

 

 

 

4
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics