• <strike id="hbm8c"></strike>

    1. <center id="hbm8c"><table id="hbm8c"></table></center>
      <sub id="hbm8c"></sub>

        <form id="hbm8c"></form>

            设为首页 - 加入收藏 湛江站长网 (http://www.leavehermanalone.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,我们将及时予以处理。

            网友评论
            推荐文章
            旺彩注册