前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tomcat服务器体系结构

tomcat服务器体系结构

作者头像
木瓜煲鸡脚
发布2019-08-13 11:13:46
6460
发布2019-08-13 11:13:46
举报
文章被收录于专栏:Jasper小笔记

tomcat服务器体系结构

IT那个小笔记

  1. 体系结构
  2. Server
  3. Service
  4. Connector
  5. Engine
  6. Host
  7. Context

体系结构

server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件,通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制。

1.Server:整个Servlet容器组合,可以包含一个或多个<Service>

2.service:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获得的客户请求。

3.Connector:客户端与程序交互组件,负责接收请求以及向客户端返回响应。

4.Engine:处理连接器接收到请求

5.Host:虚拟主机

6. Context一个Context对应一个Web Application

Server

Server元素在最顶层,代表整个Tomcat容器,因此它必须是server.xml中唯一一个最外层的元素。一个Server元素中可以有一个或多个Service元素。

在上图中,在最外层有一个<Server>元素,shutdown属性表示关闭Server的指令

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

Service

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

在上图中,Server中包含一个名称为“Catalina”的Service。实际上,Tomcat可以提供多个Service,不同的Service监听不同的端口,客户端访问哪个端口就到哪个Service

Connector

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

当客服端访问到8080端口就可以连接这个服务,下面的8009是对服务器。还有一些其他属性:连接超时的时间、要求的协议、重定向端口号

Engine

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

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

其中,name属性用于日志和错误信息,在整个Server中应该唯一。defaultHost属性指定了默认的host名称,当发往本机的请求指定的host名称不存在时,一律使用defaultHost指定的host进行处理;因此,defaultHost的值,必须与Engine中的一个Host组件的name属性值匹配。

也就是说当发送请求的主机名找不到一个Host主机名与之匹配,就会换成defaultHost配置的主机名再去找,一个Engine中一定得有一个Host的主机名是Engine的属性defaultHost相匹配的

Host

Host的作用

Host虚拟主机的作用,是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。

Host组件代表的虚拟主机,对应了服务器中一个网络名实体(如”www.test.com”,或IP地址”),一个主机可以有多个虚拟主机来对应,通过不同的主机名访问同一台电脑服务器的不同应用

客户端通常使用主机名来标识它们希望连接的服务器;该主机名也会包含在HTTP请求头中。Tomcat从HTTP头中提取出主机名,寻找名称匹配的主机。如果没有匹配,请求将发送至默认主机。因此默认主机不需要是在DNS服务器中注册的网络名,因为任何与所有Host名称不匹配的请求,都会路由至默认主机。

Host的配置

name

  • 属性指定虚拟主机的主机名,一个Engine中有且仅有一个Host组件的name属性与Engine组件的defaultHost属性相匹配;一般情况下,主机名需要是在DNS服务器中注册的网络名,但是Engine指定的defaultHost不需要,原因在前面已经说明。

unpackWARs

  • 指定了是否将代表Web应用的WAR文件解压;如果为true,通过解压后的文件结构运行该Web应用,如果为false,直接使用WAR文件运行Web应用。

Host的autoDeploy和appBase属性,与Host内Web应用的自动部署有关

Context

一个Context就表示一个应用

docBase属性:此web应用的文件路径,相对于所属Host的地址。也可以用绝对路径不放在Host指定的应用目录下

path:URL入口,请求找到哪一个web应用,一个path对应一个docBase,若把上面的path="/servlet"改为path="/aaaa",要访问路径是servlet的应用就得输入主机:端口/aaaa

reloadable:字节码变化服务器是否重新加载web应用

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档