Tomcat 学习过程3
一、Tomcat配置文件详解
Tomcat的配置文件再conf文件下,其中
1)server.xml :核心配置文件,用于配置服务器;
2)web.xml : Servlet的标准文件,作用于所有的站点;
3)tomcat-user.xml:用于配置Tomcat用户验证的角色、用户和密码;
4)catalina.policy: Tomcat安全策略配置。
前三个在Tomcat启动时被加载。
(1)server.xml
server.xml作用是提供Tomcat的初始配置;说明Tomcat的结构、含义,使得Tomcat通过实例化组价完成构建和启动。
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
以上是是Tomcat的基本元素,看下图理解他们之间的相互关系 
server:是顶层元素,代表整个catalina servlet容器,可以包含一个或者多个service;
service :连接器元素,它由一个或者多个connector和一个Engine组成,负责处理所有connector所获得的客户请求。所有的connector共享同一个Engine;
connector:实际和客户交互的组件。一个connector将在某个指定的端口侦听客户请求,并获得的请求交给Engine来处理,从Engine处获得回应并返回客户;
Engine:容器类元素,可以包含多个virtual host 元素,每个虚拟主机都有一个域名。当engine获得一个connector发出的http请求时,它把该请求匹配到某个host上,然后把该请求交个该host来处理,Engine有一个默认虚拟主机localhost,当请求无法匹配任何一个host上的时候 ,将交个这个默认的host来处理。
host :定义一个虚拟主机,每个虚拟主机都和某个DNS相匹配,每个虚拟主机下都可以部署(deploy)一个或者多个web app,每个web APP都对应一个context,有一个context path 。当host获得一个请求时,将把该请求匹配当某个context上,然后把该请求交个该context来处理。匹配的方法是“最长匹配”,path=“”的context将成为该host的默认context,所以无法和其他的context的路径名匹配的请求都将最终和该默认的context匹配。默认的虚拟主机localhost的根目录APPbase指向webapps;
context:使用最频繁的元素,每个context代表运行在虚拟主机上一个应用,一个context对应于一个web APP,一个web APP 有一个或者多个servlet组成,context在创建的时候将根据配置文件web.xml载入servlet类。当context获得请求时,将在自己的映射表(mapping table)中寻找相匹配的servlet类,如果找到,则执行该请求,获得请求的回应,并返回;

浙公网安备 33010602011771号