媒介
Tomcat附属于Apache基金会,是开源的轻量级Web应用处事器,利用很是遍及。server.xml是Tomcat中最重要的设置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的设置,可以实现对Tomcat中各个组件的节制。因此,进修server.xml文件的设置,对付相识和利用Tomcat至关重要。
本文将通过实例,先容server.xml中各个组件的设置,并具体说明Tomcat各个焦点组件的浸染以及各个组件之间的彼此干系。
说明:由于server.xml文件中元素与Tomcat中组件的对应干系,后文中为了描写利便,“元素”和“组件”的利用不严格区分。
一、一个server.xml设置实例
server.xml位于$TOMCAT_HOME/conf目次下;下面是一个server.xml实例。后文中将团结该实例讲授server.xml中,各个元素的寄义和浸染;在阅读后续章节进程中,可以比较该xml文档便于领略。
<Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <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"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <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.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> </Server>
二、server.xml文档的元素分类和整体布局
1、整体布局
server.xml的整体布局如下:
<Server> <Service> <Connector /> <Connector /> <Engine> <Host> <Context /><!-- 此刻经常利用自动陈设,不推荐设置Context元素,Context小节有具体说明 --> </Host> </Engine> </Service> </Server>
该布局中只给出了Tomcat的焦点组件,除了焦点组件外,Tomcat尚有一些其他组件,下面先容一下组件的分类。
2、元素分类
server.xml文件中的元素可以分为以下4类:
(1)顶层元素:<Server>和<Service>
<Server>元素是整个设置文件的根元素,<Service>元素则代表一个Engine元素以及一组与之相连的Connector元素。
(2)毗连器:<Connector>
<Connector>代表了外部客户端发送请求到特定Service的接口;同时也是外部客户端从特定Service吸收响应的接口。
(3)容器:<Engine><Host><Context>
容器的成果是处理惩罚Connector吸收进来的请求,并发生相应的响应。Engine、Host和Context都是容器,但它们不是平行的干系,而是父子干系:Engine包括Host,Host包括Context。一个Engine组件可以处理惩罚Service中的所有请求,一个Host组件可以处理惩罚发向一个特定虚拟主机的所有请求,一个Context组件可以处理惩罚一个特定Web应用的所有请求。
(4)内嵌组件:可以内嵌到容器中的组件。实际上,Server、Service、Connector、Engine、Host和Context是最重要的最焦点的Tomcat组件,其他组件都可以归为内嵌组件。
下面将具体先容Tomcat中各个焦点组件的浸染,以及彼此之间的干系。
三、焦点组件
本部门将别离先容各个焦点组件的浸染、特点以及设置方法等。
1、Server
Server元素在最顶层,代表整个Tomcat容器,因此它必需是server.xml中独一一个最外层的元素。一个Server元素中可以有一个或多个Service元素。