Bootstrap

Tomcat配置文件入门

Tomcat 基本配置

 

tomcat读取配置文件

首先简单说一下tomcat是如何读取配置文件的。tomcat在启动时,首先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。

最重要的配置文件:server.xml

要配置tomcat,基本上了解server.xml,context.xml和web.xml就可以了。在Tomcat中,都有这几个文件的默认文件,如server.xml的内容如下:
 

The Server Component

 
顶层元素为<server>,这个元素对应着Tomcat结构中的server部分。这一行的意思是让Tomcat在8005端口监听关闭消息,如果使用telnet连接8005端口并输入SHUTDOWN,则tomcat就会关闭。为了安全,tomcat不会接受远程通过这个端口发的消息。
<Server>还有一些其他属性,如果不做配置的话,这些属性将使用默认值,下面是这些属性的介绍。
属性 描述 是否必须?
className 表示server的类,需要实现org.apache.catalina.Server接口。tocmat6默认值使用rg.apache.catalina.core.StandardServer
port 用来监听shutdown属性所对应的那个命令,实现关闭tomcat操作的TCP端口。tocmat会检查连接是否来自同一台机器,只有同一台机器(物理地址)发来的消息才被接受。
shutdown tomcat会监听port所规定的端口,来接受这个属性所规定的命令
<Server>还有一些子标签,内容如下:
属性 描述 数量
<Service> 包括一组和一个<Engine>相关联的<Connector>。这些Connector可以并发地接收各种协议的请求,并交给<Engine>来处理 1 or more
<Listener> 用来监听Server生命周期(start, stop, before start, after start, before stop, after stop)信息 0 or more
<GlobalNamingResources> 整个tomcat实例都可以使用的JNDI资源 0 or more

The Service Component

Service component包括一组Connector和一个Engine,这些Connector监听不同端口不同协议的请求,并且这些Connector是并发执行的,Engine则被用来处理这些请求。在默认的server.xml中,service标签的内容如下:
<Service name=”Catalina”>
<service>可以有以下属性:    
属性 描述 必需?
className service compoent所对应的java类,默认实现org.apache.catalina.core.StandServic
name service的name,通常在administration,management和logging中使用
<service>拥有这些子元素:
子元素 描述 数量
Connector 作用为处理外部的连接请求并将其发送给Engine处理。一个Connector拥有几个线程和相应资源来处理这些请求。 1 or more
Engine 常用类型有两种,Catalina和Standalone。Engine是用来处理Connector发过来的请求的。 1
The Connector Component
tomcat6提供了两种Connector,分别为HTTP/1.1和AJP/1.3。这两种Connector在默认的server.xml中的配置为:
 
The Engine Component
Engine在server.xml中的代码如下:
一个Engine就是一个容器,servlet容器。一个Engine可以处理多个虚拟Host(apache中的概念)的请求。当Engine不知该将请求交给那个host时,Engine则将请求转给defaultHost来处理。
<Engine>的属性如下表所示:
属性 描述 必需?
className Engine所对应的java类,默认使用org.apache.catalina.core.StandardEngine
backgroundProcessDelay
单位为秒,在这个属性所定义的时间之后,此Engine将进入后台处理。如果该值为负,则直接进入后台处理。后台处理一般用于处理低优先级的任务。    
defaultHost 当Engine找不到请求对应的host时,就使用这个host
jvmRoute 这是tomcat6在负载均衡中使用的标识符,
name Engine的名称
作为一个容器,Engine有许多子元素,具体内容如下表:
子元素 描述 数量
Host 每个<Host>元素都表示一个由Engine支配的虚拟主机(virtual host) 1 or more
Context 一组属性-元素的配置集合。在默认的context定义的属性可以被Engine中所有的web应用程序所使用。 0 or 1
Realm 用于身份验证等安全机制,Engine和Context都可以由Realm。如果不指定,则使用Engine的Realm。 0 or 1
Valve Standard Valve用于登陆日志,请求过滤等 0 or more
Listener 用于tomcat生命周期控制 0 or more
The Realm Component
在默认的server.xml中,Engine中的第一个子标签就是<Realm>了,其代码如下:
 <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserD

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;