<rp id="scfsb"></rp>

      1. <ol id="scfsb"></ol>
        <th id="scfsb"><pre id="scfsb"></pre></th>
        1. <tbody id="scfsb"></tbody>
          设为首页 - 加入收藏 湛江站长网 (http://www.wow-il.com)- 中小站长们必上的网站 - 聚焦湛江站长前沿资讯!
          热搜: 网站 站长之家 什么 平台
          当前位置: 首页 > 业界 > 正文

          一文带你详解了解Tomcat的Server配置!

          发布时间:2018-11-15 11:28 所属栏目:[业界] 来源:Tomcat
          导读:副标题#e# 前言 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制。因此,

          前言

          Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制。因此,学习server.xml文件的配置,对于了解和使用Tomcat至关重要。

          本文将通过实例,介绍server.xml中各个组件的配置,并详细说明Tomcat各个核心组件的作用以及各个组件之间的相互关系。

          说明:由于server.xml文件中元素与Tomcat中组件的对应关系,后文中为了描述方便,“元素”和“组件”的使用不严格区分。

          一文带你详解了解Tomcat的Server配置!

          如果觉得文章对你有帮助,欢迎点赞或转载。文章有疏漏之处,欢迎批评指正。

          一、一个server.xml配置实例

          server.xml位于$TOMCAT_HOME/conf目录下;下面是一个server.xml实例。后文中将结合该实例讲解server.xml中,各个元素的含义和作用;在阅读后续章节过程中,可以对照该xml文档便于理解。

          一文带你详解了解Tomcat的Server配置!

          二、server.xml文档的元素分类和整体结构

          1、整体结构

          server.xml的整体结构如下:


          一文带你详解了解Tomcat的Server配置!

          该结构中只给出了Tomcat的核心组件,除了核心组件外,Tomcat还有一些其他组件,下面介绍一下组件的分类。

          2、元素分类

          server.xml文件中的元素可以分为以下4类:

          (1)顶层元素:<Server>和<Service>

          元素是整个配置文件的根元素,元素则代表一个Engine元素以及一组与之相连的Connector元素。

          (2)连接器:<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元素。

          在第一部分的例子中,在最外层有一个元素,shutdown属性表示关闭Server的指令;port属性表示Server接收shutdown指令的端口号,设为-1可以禁掉该端口。

          Server的主要任务,就是提供一个接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service。

          2、Service

          Service的作用,是在Connector和Engine外面包了一层,把它们组装在一起,对外提供服务。一个Service可以包含多个Connector,但是只能包含一个Engine;其中Connector的作用是从客户端接收请求,Engine的作用是处理接收进来的请求。

          在第一部分的例子中,Server中包含一个名称为“Catalina”的Service。实际上,Tomcat可以提供多个Service,不同的Service监听不同的端口,后文会有介绍。

          3、Connector

          Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine。

          通过配置Connector,可以控制请求Service的协议及端口号。在第一部分的例子中,Service包含两个Connector:

          一文带你详解了解Tomcat的Server配置!

          (1)通过配置第1个Connector,客户端可以通过8080端口号使用http协议访问Tomcat。其中,protocol属性规定了请求的协议,port规定了请求的端口号,redirectPort表示当强制要求https而请求是http时,重定向至端口号为8443的Connector,connectionTimeout表示连接的超时时间。

          在这个例子中,Tomcat监听HTTP请求,使用的是8080端口,而不是正式的80端口;实际上,在正式的生产环境中,Tomcat也常常监听8080端口,而不是80端口。这是因为在生产环境中,很少将Tomcat直接对外开放接收请求,而是在Tomcat和客户端之间加一层代理服务器(如nginx),用于请求的转发、负载均衡、处理静态文件等;通过代理服务器访问Tomcat时,是在局域网中,因此一般仍使用8080端口。

          (2)通过配置第2个Connector,客户端可以通过8009端口号使用AJP协议访问Tomcat。AJP协议负责和其他的HTTP服务器(如Apache)建立连接;在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。之所以使用Tomcat和其他服务器集成,是因为Tomcat可以用作Servlet/JSP容器,但是对静态资源的处理速度较慢,不如Apache和IIS等HTTP服务器;因此常常将Tomcat与Apache等集成,前者作Servlet容器,后者处理静态资源,而AJP协议便负责Tomcat和Apache的连接。Tomcat与Apache等集成的原理如下图(图片来源):

          一文带你详解了解Tomcat的Server配置!

          关于Connector的更多内容,可以参考我的另一篇文章:详解tomcat的连接数与线程池

          4、Engine

          Engine组件在Service组件中有且只有一个;Engine是Service组件中的请求处理组件。Engine组件从一个或多个Connector中接收请求并处理,并将完成的响应返回给Connector,最终传递给客户端。

          前面已经提到过,Engine、Host和Context都是容器,但它们不是平行的关系,而是父子关系:Engine包含Host,Host包含Context。

          在第一部分的例子中,Engine的配置语句如下:

          一文带你详解了解Tomcat的Server配置!

          【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

          网友评论
          推荐文章
          旺彩娱乐