Tomcat 部署 Web应用程序(3)

首先理解分析一下Tomcat的核心配置文件

Tomcat服务器是由一系列可配置的组件构成,其中核心组件是Catalina Servlet容器,它是所有其他Tomcat组件的顶层容器。Tomcat的组件可以在<CATALINA_HOME>/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。以下代码呈现了各种Tomcat组件之间的关系:

<Server>

<Service>

<Connector/>

<Engine>

<Host>

<Context>

</Context>

</Host>

</Engine>

</Service>

</Server>

以上XML代码中,每个元素都代表一种Tomcat组件。

这些元素可分为四类。

1、  顶层元素类<Server>\<Service>

a)         Server元素类

i.              <Server>元素代表整个Catalina Servlet容器,因此它在conf/server.xml文件中必须是单独的最外层元素,它的属性表示整个Servlet容器的特征。<Server>元素中可包含一个或多个<Service>元素和GlobalNamingResources元素。

b)         Service元素类

i.              一个Service元素表示一个或者多个Connector元素组件的组合,这些Connector元素组件共享一个单独的Engine组件用于处理客户端到来的请求。可以有一个或多个Service元素。

2、  连接器元素类<Connector>

连接器元素类代表了介于客户与服务器之间的通信接口,负责将客户的请求发送个服务器,并将服务器的响应结果传递给客户。

a)         Http Connector

i.              Http Connector元素表示一个支持HTTP/1.1协议的Connector组件.它除了他的执行Servlet和JSP页面的能力之外它使Catalina的功能能够成为一个独立的Web服务器。这个组件的一个实例在服务器的一个特定的TCP端口号上监听客户端到来的连接。一个或多个这样的Connector能被配置为单个Service的部件,附送到管理的Engine去执行请求处理和创建响应。

b)         AJP Connector

AJP Connector元素表示一个Connector组件,它通过这个AJP协议与一个Web Connector进行通信。这被用于你希望去整合Tomcat到一个存在的或新的Apache安装的情形。并且你希望Apache去处理Web项目包含的静态内容,并且或者利用Apache的SSL处理。

3、  容器元素类

容器元素类代表处理客户请求并生成响应的结果的组件,有3种容器类型元素,他们是Engine、Host和Context。

3.1、Engine组件为特定的Service组件处理所有客户请求,每个<Service>元素只能包含一个<Engine>元素。<Engine>元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求。并且返回完整的响应给Connector作为最终的传输返回给客户端。

3.2、Host组件为特定的虚拟主机处理所有客户请求,一个<Engine>元素中可以包含多个<Host>元素。每个<Host>元素定义了一个虚拟主机,它可以包含一个或多个Web应用。虚拟主机通常是一个网络名的关联,客户端使用虚拟主机的网络名可以连接到一个Tomato服务器。这个网络名必须在DNS服务器注册。

在许多情况下,系统管理员希望关联多于一个网络名到相同的虚拟主机和应用程序,这个可以通过使用主机别名<Alias>来完成。

一个或者多个Host元素被嵌套在一个Engine元素,在这个Host元素里面,对于与这个虚拟主机关联的web应用程序你能嵌套Context元素在它里面。与某个Engine关联的这些虚拟主机中的某一个必须有一个名字匹配Engine元素的defaultHost属性。

客户端通常使用主机名来标识它希望连接的服务器。这个主机名也被包含在HTTP请求头。Tomcat从HTTP请求头提取这个主机名并且使用一个匹配名字查询一个Host。如果没有匹配被发现,这个请求被路由到缺省主机。

3.3、Context组件为特定的Web应用处理所有客户请求。<Context>元素是使用最频繁的元素。每个<Context>元素代表了运行在虚拟主机上的单个Web应用程序,它运行在一个实际的虚拟主机内,每个Web应用程序是基于一个Web应用程序档案文件或者一个相应目录包含相应的解包内容。

Web应用程序处理每个HTTP请求的选择方式是基于请求URI的最长可能前缀匹配原则,一旦被选择,Context将依照servlet mapping的定义来选择一个合适的Servlet来处理到来的请求。

你可以定义多个Context元素,如果你需要的话。每个Context必须拥有一个唯一的Context名字。

一个<Host>元素中可以包含多个<Context>元素。

4、  嵌套类元素

嵌套类元素代表了可以加入到容器中的组件,如<Logger>元素、<Valve>元素和<Realm>元素。

Tomcat中各个组件之间的关系:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b03e4bff5f661cbd33ba2fc0fcade0a8.html