zoukankan      html  css  js  c++  java
  • tomcat(二)--tomcat结构

    Tomcat结构及组件介绍

    image

    上面的层次结构在server.xml中有体现

    <Server>                                               
        <Service>                                          
            <Connector>                                   
                    <Engine>                                
                            <Host>                         
                                    <Context>               
                                    </Context>
                            </Host>
                    </Engine>
            </Connector>
        </Service>
    </Server>

    Server : 顶层组件,表示整个Tomcat服务器。运行在jvm的一个tomcat实例。

    Service: 容器类组件,包含一个或多个Connector,每个<Service>元素只能包含一个<Engine>元素. 提供<Connector>到<Engine>的绑定。

    Connector:连接器,代表外部客户之间的接口,将在一个指定的接口上侦听客户请求,并将获得的请求交给<Engine>进行处理,然后把处理结果返回给客户,一个连接器只能连接一个<Engine>。

    Engine : 引擎,每个<Service>元素只能包含一个<Engine>元素,处理<Service>中的所有客户请求,通过<Connectors>接收请求,把这个请求匹配到某个<Host>上进行处理,如果没有找到合适的<Host>来进行处理,则把这个请求交给一个默认虚拟主机处理。 <Engine>元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求。

    Host : 虚拟主机,一个<Engine>元素中可以包含多个<Host>元素,一个 Host 在 Engine 中代表一个虚拟主机,处理一个特定主机的请求。

    Context :  Web应用,每个虚拟主机都可以配置一个到多个Web应用,每个Web应用对应一个<Context>,<Host>获得的请求最终匹配到某个<Context>上,由它进行处理。

    Tomcat 还有很多其他的组件,如valve(可以实现IP访问控制)、logger(用于除context外的任意容器)、realm(关联认证库)等

    组件常用参数

    Server
    port              :指定Tomcat服务器监听shutdown命令的端口.终止Tomcat服务运行时,必须在Tomcat服务器所在的机器上发出Shutdown命令.只监听本地地址,该属性是必须设定的.
    shutdown      :指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性是必须设定的.

    Connector

    address:指定连接器监听的地址,默认为所有地址,即0.0.0.0
    maxThreads:支持的最大并发连接数,默认为200
    port:监听的端口,默认为0
    protocol:连接器使用的协议,默认为HTTP/1.1,定义AJP协议时通常为AJP/1.3;
    redirectPort:如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的端口
    connectionTimeout:等待客户端发送请求的超时时间,单位为毫秒,默认为60000,即1分钟
    enableLookups:是否通过request.getRemoteHost()进行DNS查询以获取客户端的主机名;默认为true
    acceptCount:设置等待队列的最大长度;通常在tomcat所有处理线程均处于繁忙状态时,新发来的请求将被放置于等待队列中

    Engine

    defaultHost:其定义一个接收所有发往非明确虚拟主机请求的host,请求报文的Host首部匹配<HOST>的名字。

    Host

    appBase:指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.  如果此项没有设定,默认值为<CATALINA_HOME>/webapps
    autoDeploy:如果此项设为true,表示当Tomcat服务器处于运行状态时,能够监测appBase下的文件,如果有新的Web应用加入进来,会自动发布这个Web应用.;默认为true
    unpackWars:如果此项设为true,表示将把Web应用的WAR文件先展开为开放目录结构后再运行.如果设为false,将直接运行WAR文件;默认为true
    name :定义虚拟主机的名字
    Context

    path:相对于Web服务器根路径而言的URI;如果为空“”,则表示为此webapp的根路径;如果context定义在一个单独的xml文件中,此属性不需要定义。
    docBase:相应的Web应用程序的存放位置;也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径;切记,docBase的路径名不能与相应的Host中appBase中定义的路径名有包含关系,比如,如果appBase为deploy,而docBase绝不能为deploy-bbs类的名字。
    reloadable:是否允许重新加载此context相关的Web应用程序的类;默认为false。

  • 相关阅读:
    php 3des加密 兼容JAVA 多么痛的领悟呀
    主机序和网络序
    不用递归实现无限分类数据的树形格式化
    python学习笔记之open函数的用法
    据说是百度面试题(1)
    YII+DWZ三级城市联动挂件
    wpf 报错: 在 AddNew 或 EditItem 事务过程中不允许“DeferRefresh”。
    MVVM了解
    纪念2015年上半年
    c# 委托与事件
  • 原文地址:https://www.cnblogs.com/otherside/p/5805213.html
Copyright © 2011-2022 走看看