- $Tomcat目录简介
tomcat下有9个目录,分别是bin,common,conf,logs,server,shared,temp,webapps,work 目录,现在对每一目录做介绍。
1.< CATALINA_HOME>/bin: 存放各种平台下启动和关闭Tomcat的脚本文件。 startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件。
2.<CATALINA_HOME>/common: 在common目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR。
3.<CATALINA_HOME>/shared: 在shared目录下的lib目录,存放所有web应用能访问的,但Tomcat不能访问的JAR。
4.<CATALINA_HOME>/server: 在server/webapps目录中,存放Tomcat自带的两个APP-admin和manager应用,使用来管理Tomcat-web服务用的。在server/lib目录中,存放tomcat服务器所需要的各种JAR,但web应用不能访问。
5.<CATALINA_HOME>/work : Tomcat把各种由jsp生成的servlet文件放在这个目录下。jsp->.class
6.<CATALINA_HOME>/webapps:当发布web应用时,默认情况下把web应用文件放于此目录下
7.<CATALINA_HOME>/temp : 临时活页夹,Tomcat运行时候存放临时文件用的。
8.<CATALINA_HOME>/logs : 存放Tomcat的日志文件
9.<CATALINA_HOME>/conf : Tomcat的各种配置文件, tomcat启动的时候需要读取的配置文件:server.xml(tomcat主要配置文件)、web.xml和tomcatat-users.xml、catalina.policy(安全策略文件)等。修改了以后需要重启tomcat才能生效.最重要的是 server.xml;配置tomcat组件的XML。
下面着重介绍server.xml
- $CATALINA_HOME/conf/server.xml配置简介
server.XML其中包括
I.顶层类元素[Top Level Elements]: 位于整个配置文件的顶层, 包括<Server>和<Service>;
II.连接器类元素[Connectors ]: 客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果;<Connector>
II.容器类元素[Containers]: 处理客户请求并且生成响应结果,包含3个:<Engine> <Host> <Context>
IV.嵌套类元素[Nested Components]: 可以加入到容器中的元素,包括:<logger> <Valve><Realm>等
-
- <Server>
-
- port:指定一个端口,这个端口负责监听关闭tomcat的请求
- shutdown:指定向端口发送的命令字符串,通常是“SHUTDOWN”
- <Service>
-
- name:指定service的名字,通常是”Catalina”
- <Connector/>
-
- port:指定服务器端要创建的端口号,并使用这个断口监听来自客户端的请求
- minProcessors:服务器端启动时创建的处理请求的线程数
- maxProcessors:最大可以创建的处理请求的线程数
- maxThreads:服务器创建的最大线程数
- minSpareThreads:最小剩余线程数
- maxSpareThreads:最大剩余线程数
- enableLookups:如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其IP地址
- redirectPort:指定当服务器正在处理HTTP请求时收到了一个SSL传输请求后重定向的端口号
- acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过的请求将不予处理
- connectionTimeout:指定超时的时间数(以毫秒为单位)
- <Engine>(指定service中的请求处理主机,接收和处理来自Connector的请求)
-
- name:指定Engine的名字,通常是”Catalina”
- defaultHost:指定默认的处理请求的主机名,至少与某个host元素的name属性值是相同的
- <Context/>(表示一个web应用程序)
-
- docBase:指定此Web应用的绝对或相对路径,也可以为WAR文件的路径
- path:表示此Web应用程序的url的入口,如为“/hello“,则请求的URL为http://localhost:8080/hello/
- reloadable:如果为true,则Tomcat在运行时会自动监视Web应用的/WEB-INF/lib和/WEB-INF/classes下文件的改动,自动装载新应用,使我们可以在不重启Tomcat的情况下更新Web应用
- <Host>(表示一个虚拟主机)
-
- name:指定虚拟主机名字
- debug:指定日志级别
- appBase:存放Web应用程序的基本目录,可以是绝对路径或相对于$CATALINA_HOME的目录,默认是$CATALINA_HOME/webapps
- unpackWARs:如果为true,则tomcat会自动将WAR文件解压后运行,否则不解压而直接从WAR文件中运行应用程序
- autoDeploy:如果为true,表示Tomcat启动时会自动发布appBase目录下所有的Web应用(包括新加入的Web应用)
- deployOnStarup:如果此项为true,表示Tomcat服务器启动时会自动发布appBase目录下所有Web应用。如果Web应用在server.xml中没有相应的<Context>元素,则将采用默认的Context配置。deployOnStarup的默认设置是truealias:指定虚拟主机的别名,可以指定多个别名
- <Logger/>(表示日志,调试和错误信息)
-
- className:指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口
- prefix:指定log文件名的前缀(文件名)
- suffix:指定log文件名的后缀(扩展名)t
- imestamp:如果为true,则log文件名中会加入日期时间,如下例:localhost_log.2006-10-04.txt
- directory:指定log文件存放的目录
- <Realm/>
-
- 元素属性(表示存放用户名,密码及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方式记录的值还多