全部博文(80)
分类: LINUX
2009-01-07 17:42:58
Tomcat的体系结构
图一
图二:
Tomcat 6.0支持Servlet2.5和Jsp2.1规范,由一系列嵌套的组件组成。
其中蓝色字体表示该组件为一个容器组件。容器组件可以包含其它组件。下面介绍一些只能嵌套在容器中的组件。
配置Tomcat
Tomcat 6服务器启动后,会读取多个XML配置文件。这些配置文件位于CATALINA_HOME/conf目录下,包含以下配置文件:
catalina.policy:配置安全管理策略。
catalina.properties:配置Tomcat的类加载器。
context.xml:配置上下文,能够所有的web应用使用。
server.xml:Tomcat的基本配置,包括服务、连接器、引擎、域、阀、主机等。
logging.properties:配置日志,指定了日志的输出ConsoleHander和FileHandler。
Tomcat-user.xml:包含用户认证和角色映射配置。Tomcat的admin和manager应用都默认使用该文件。
web.xml:默认的web应用部署描述符文件。用于Tomcat 6中自动部署web应用,如果web应用有自己的部署描述符,则内容覆盖默认部署的设置。
Tomcat6 在CATALINA_BASE环境变量指定的目录下找conf目录并加载配置,如果没有指定该环境变量,则在CATALINA_HOME指定的目录下找conf目录并加载配置,可以在同一台机器上配置多个并发的Tomcat只需要指定不同的配置和端口即可。
配置server.xml
1、 配置
classname:指定实现org.apache.catalina.Server接口的类。no
port:指定Tomcat服务器监听shutdown命令的端口。yes
shutdown:指定终止tomcat服务器运行时,发给tomcat服务器的shutdown监听端口的字符串。yes
2、配置全局命名资源
description:环境入口描述。no
name:环境入口名字,相对于java:comp/env上下文。yes
override:默认为true,如果用户不想web应用部署描述符覆盖值的话,设置为false。no
type:入口类型。必须是在servlet规范中表明的合法的类型。yes
value:入口的值。yes
auth:指定是web应用代码本身登录到对应的资源管理器,还是由容器代表web应用登录到资源管理器。该属性的值必须是Application或者Container。如果在web应用部署描述符中使用
desprition:资源的描述。no
name:资源的名字。yes
scope:指定通过这个resource manager得到的连接是否共享。该属性的值必须是Shareable或者Unshareable。默认情况下,假定连接是共享的。no
type:当web应用查找该资源的时候,返回java类名的全称。yes
Tomcat 6不再使用Tomcat 5和早期版本使用的
3、配置服务
服务组件是由多个连接器组件和一个引擎组件组成。在日志和错误信息中将会出现服务名称,用于清晰的表明该组件。
classname:指定service类使用的java类名,默认是org.apache.catalina.core.StandardService。no
name:定义service名称,用于登录和管理。yes
Connector:来自用户或其他web服务器的请求。1个或者多个
Engine:负责请求的处理。1个
4、配置连接器
请求进入Tomcat的两种情况:
在一个引擎中可以配置多个连接器,比如一个服务器提供http服务和https服务给用户。这时需要在引擎中配置http连接器和https连接器。
在server.xml中预定义了4个最普通的连接器:
address:如果服务器上有两个以上IP地址,该属性可以设定端口监听的IP地址。默认情况下,端口会监听服务器上所有IP地址。no
alloTrace:布尔值,设置为true,trace http的方法可用。默认为false。no
enableLookups:如果设为true,表示支持域名解析,可以把IP地址解析为主机名。false表示跳过域名解析,直接把IP地址作为字符串返回。默认为true。no
mastPostSize:post请求字节的最大大小。默认为2097152。no
redirectPort:指定转发端口,如果当前端口只支持non-ssl请求,在需要安全通信的情况下,自动将把客户请求转发到基于SSL的redirectPort端口。no
scheme:连接器使用的协议名称。例如可以为SSL连接器,设置属性为https。默认为http。no
secure:如果是SSL连接的话,设置为true,当调用request.getScheme()时,返回该值。默认值为false。no
URIEncoding:URI字节的解码字符编码,默认为iso-8859-1。no
useBodyEncodingForURI:表明如果contentType指定的编码用于URI查询参数,则不用URIEncoding。与Tomcat4.1.x兼容。默认为false。no
HTTP
acceptCount:设定在监听端口队列中的最大客户请求数。默认值为10,如果队列已满,客户请求将被拒绝。no
bufferSize:设定有端口创建的输入流的缓存大小,默认值为2048字节。no
compressableMimeTypes:设定http压缩mime类型,默认值为text/html,text/xml,text/plain。no
compression:设定为节省服务器带宽,使用http/1.1 GZIP压缩,可选值有off,on,fore,integer。默认值为off。no