`
wbj0110
  • 浏览: 1546089 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Tomcat体系架构

    博客分类:
  • Java
阅读更多

 

    

 
 
  • Service组件:Tomcat服务器的实例。一个JVM中生成一个,可以在一台服务器上配置不同的端口,从而启动多个Tomcat实例。
  • Connector组件:负责连接客户端与应用程序。接受来自客户端的请求以及向客户返回响应的结果。
  • Engine组件:引擎组件负责接受和正理来自它所属的Service中的所有的Connection的请求。每个Service中只能包含一个Engine组件。
  • Host组件:一个虚拟主机,允许在一台物理主机上布置多个web应用。
  • Context组件:一个web应用。一个虚拟主机上能够运行多个Context,它们通过各自的Context path 进行区分。

其中蓝色字体表示该组件为一个容器组件。容器组件可以包含其它组件。下面介绍一些只能嵌套在容器中的组件。

  • Global Resources全局资源组件:只能嵌套在Server组件中,用于配置Server中其他组件所用到的全局jndi资源。
  • Loader 加载组件:只能嵌套在Context组件中,用于指定一个web应用的类加载器,并将该应用程序的类和资源加载到内存中。
  • Logger 日志组件:能够借助log4j来实现日志。
  • Manager 管理器组件:只能嵌套在Context组件中。管理器组件是会话管理器,负责会话的创建和维护。
  • Realm 域组件:是一个包含用户名、密码和用户角色的数据库。
  • Resources 资源组件:只能嵌套在Context组件中,它代表的是web应用程序中的静态资源,以及它们被允许存放的格式。
  • Valve 阀组件:用请求在到达目的地前,截取该请求,并处理它。有点类似于Servlet规范中定义的过滤器。它是Tomcat专有的、目前不能用于其他的jsp/servlet容器。

配置Tomcat

Tomcat 6服务器启动后,会读取多个XML配置文件。这些配置文件位于CATALINA_HOME/conf目录下,包含以下配置文件:

catalina.policy:配置安全管理策略。

catalina.properties:配置Tomcat的类加载器。

context.xml:配置上下文,能够所有的web应用使用。

server.xml:Tomcat的基本配置,包括服务、连接器、引擎、域、阀、主机等。

logging.properties:配置日志,指定了日志的输出ConsoleHander和FileHandler。

Tomcat-user.xml:包含用户认证和角色映射配置。Tomcat的admin和manager应用都默认使用该文件。

web.xml:默认的web应用部署描述符文件。用于Tomcat 6中自动部署web应用,如果web应用有自己的部署描述符,则内容覆盖默认部署的设置。

Tomcat6 在CATALINA_BASE环境变量指定的目录下找conf目录并加载配置,如果没有指定该环境变量,则在CATALINA_HOME指定的目录下找conf目录并加载配置,可以在同一台机器上配置多个并发的Tomcat只需要指定不同的配置和端口即可。

配置server.xml

1、 配置<server>

<server>的属性

classname:指定实现org.apache.catalina.Server接口的类。no

port:指定Tomcat服务器监听shutdown命令的端口。yes

shutdown:指定终止tomcat服务器运行时,发给tomcat服务器的shutdown监听端口的字符串。yes

<server>的子元素

<GlobalNamingResources>:服务器全局jndi资源。1个

<Service>:服务组件。1个或多个

2、配置全局命名资源<GlobalNamingResources>

<GlobalNamingResources>的子元素

<Environment>:全局变量。0或多个

<Resource>:全局jndi资源。0或多个

  • <Environment>的属性

description:环境入口描述。no

name:环境入口名字,相对于java:comp/env上下文。yes

override:默认为true,如果用户不想web应用部署描述符覆盖值的话,设置为false。no

type:入口类型。必须是在servlet规范中表明的合法的类型。yes

value:入口的值。yes

  • <Resource>的属性

auth:指定是web应用代码本身登录到对应的资源管理器,还是由容器代表web应用登录到资源管理器。该属性的值必须是Application或者Container。如果在web应用部署描述符中使用<resource-ref>,这个属性是必需的。如果使用<resource-env-ref>,这个属性是可选的。

desprition:资源的描述。no

name:资源的名字。yes

scope:指定通过这个resource manager得到的连接是否共享。该属性的值必须是Shareable或者Unshareable。默认情况下,假定连接是共享的。no

type:当web应用查找该资源的时候,返回java类名的全称。yes

Tomcat 6不再使用Tomcat 5和早期版本使用的<ResourceParams>元素。代替的是使用<Resource>元素属性提供信息。

3、配置服务<Service>

服务组件是由多个连接器组件和一个引擎组件组成。在日志和错误信息中将会出现服务名称,用于清晰的表明该组件。

<Service>元素属性

classname:指定service类使用的java类名,默认是org.apache.catalina.core.StandardService。no

name:定义service名称,用于登录和管理。yes

<Service>元素的子元素

Connector:来自用户或其他web服务器的请求。1个或者多个

Engine:负责请求的处理。1个

4、配置连接器<Connector>

请求进入Tomcat的两种情况:

  • 来自前端的web服务器。可能是Apache,IIS或者其他web服务器。
  • 来自web浏览器。

在一个引擎中可以配置多个连接器,比如一个服务器提供http服务和https服务给用户。这时需要在引擎中配置http连接器和https连接器。

在server.xml中预定义了4个最普通的连接器:

  • http连接器
  • SSL连接器
  • AJP1.3连接器,用于连接其他web服务器。
  • 代理连接器

<Connector>元素的共同属性

address:如果服务器上有两个以上IP地址,该属性可以设定端口监听的IP地址。默认情况下,端口会监听服务器上所有IP地址。no

alloTrace:布尔值,设置为true,trace http的方法可用。默认为false。no

enableLookups:如果设为true,表示支持域名解析,可以把IP地址解析为主机名。false表示跳过域名解析,直接把IP地址作为字符串返回。默认为true。no

mastPostSize:post请求字节的最大大小。默认为2097152。no

redirectPort:指定转发端口,如果当前端口只支持non-ssl请求,在需要安全通信的情况下,自动将把客户请求转发到基于SSL的redirectPort端口。no

scheme:连接器使用的协议名称。例如可以为SSL连接器,设置属性为https。默认为http。no

secure:如果是SSL连接的话,设置为true,当调用request.getScheme()时,返回该值。默认值为false。no

URIEncoding:URI字节的解码字符编码,默认为iso-8859-1。no

useBodyEncodingForURI:表明如果contentType指定的编码用于URI查询参数,则不用URIEncoding。与Tomcat4.1.x兼容。默认为false。no

HTTP<Connector>元素属性

acceptCount:设定在监听端口队列中的最大客户请求数。默认值为10,如果队列已满,客户请求将被拒绝。no

bufferSize:设定有端口创建的输入流的缓存大小,默认值为2048字节。no

compressableMimeTypes:设定http压缩mime类型,默认值为text/html,text/xml,text/plain。no

compression:设定为节省服务器带宽,使用http/1.1 GZIP压缩,可选值有off,on,fore,integer。默认值为off。

转自互联网

分享到:
评论

相关推荐

    tomcat概述和体系架构

    全方位的介绍了tomcat概述和体系架构,全网最全的tomcat体系架构的详细过程

    图解 Tomcat 体系结构

    Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器。 Apache Tomcat 是一款非常著名的开源 Servlet/...让我们先来浏览一下 Tomcat 体系结构中的六个主要概念: Server Service Engine Host Connector Context

    tomcat 架构分析(概览)

    Tomcat是目前应用比较多的servlet容器。关于tomcat本身的特点及介绍,网上已经很多描述了,这里不再赘述。Tomcat除了能够支撑通常的web app外,其本身高度模块化的架构体系,也能带来最大限度的可扩展性。

    tomcat6、7、8、9, maven3.5

    Apache Tomcat 3.3是Apache Tomcat 3.x体系结构的最新延续; 它比3.2.4更先进,这是“老”的生产质量释放。 版本3.2.4是“旧的”生产质量版本,现在仅在维护模式。 版本3.1.1是旧版本。 所有的Apache Tomcat 3.X版本...

    keepalived+Nginx+tomcat 搭建集群

    keepalived+Nginx+tomcat 搭建集群,实现高并发、高负载体系架构,具备我们平时说的第3层、第4层和第7层交换机的功能。主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖...

    架构图(图片)

    技术架构以及分布式架构发展图,线程,opentaps,tomcat体系

    微服务架构的分布式事务解决方案--第01节--课程介绍

    教程中的样例项目基于龙果学院开源的微支付系统进行实现,使用Dubbo作为服务化框架,教程中所实现的分布式事务解决方案在Java体系中的微服务架构系统都能通用,与具体的开发框架无关。 教程样例项目中用到的技术及...

    企业安全体系架构分析:开发安全架构之综合架构

    开发架构师大概的意思是,开发架构的设计要基本是成套体系,比如maven库的设计,比如spring开发框架方便代码规范,比如升级业务版本的tomcatjar包覆盖,比如多个业务的关联性与架构的可复制性等等。说实话我没有加入...

    javaweb开发相关知识

    javaweb开发相关知识 常见的服务器 Tomcat安装及启动 tomcat目录结构及体系架构

    基于微信小程序的校园兼职系统(毕业设计,包括源码,数据库,教程).zip

    小程序 毕业设计,小程序 课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。...部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven

    基于java ee、Mysql、Tomcat物流信息网系统的毕业设计 系统采用 B/S 架构,前端页面使用 JSP 与 CSS

    系统采用 Java EE 技术体系,结合 MySQL 数据库管理系统,在 Tomcat 服务器下开发实现,通过 Java 程序设计实现对物流信息的采集、存储、管理、发布和查询等功能。系统实现供应商、客户的注册登录,供应商可以发布货物...

    服务器架构ppt.pptx

    主要内容 WebFOCUS基本体系 WebFOCUS web层 WebFOCUS Reporting Server概述 WebFOCUS Client概述 WebFOCUS Report Caster概述 WebFOCUS Adapter概述 服务器架构ppt全文共17页,当前为第2页。 WebFOCUS ...

    基于J2EE架构的生产管理系统设计

    系统基于B/S 多层Web 体系结构,在J2EE 平台上利用开源架构JSF、Spring、 Hibernate 等技术进行开发。按照软件工程方法,对造纸生产过程进行需求分析。使 用UML 建模工具,通过类图、用例图等对系统进行总体设计。...

    微服务架构的分布式事务解决方案-02节-效果演示

    教程中的样例项目基于龙果学院开源的微支付系统进行实现,使用Dubbo作为服务化框架,教程中所实现的分布式事务解决方案在Java体系中的微服务架构系统都能通用,与具体的开发框架无关。 教程样例项目中用到的技术及...

    安卓移动端的人力资源管理系统的设计与实现(论文+源码)-kaic.doc

    4.1 系统体系架构 4.2 系统功能架构 4.3 数据存储设计 5 系统实现 5.1 系统关键功能块的实现 5.1.1 系统登录功能界面 5.1.2 更改登录密码功能界面 5.1.3 部门信息管理功能界面 5.1.4 职工信息管理功能界面 5.1.5 ...

    Java架构面试笔试专题资料及经验(含答案)和学习笔记.zip

    Java架构面试笔试专题资料及经验(含答案)和学习笔记: ActiveMQ消息中间件面试专题.pdf Dubbo面试专题及答案(下).pdf Dubbo面试及答案(上).pdf java后端面试题答案.pdf Java基础面试题.pdf java多线程并发编程...

    3_tier_Managing_Students.zip

    通过一个简单的Eclipse平台的学生管理系统来简单介绍三层体系架构。包含JSP+servlet+jdbc技术,这个项目简单的实现了用户和管理员对数据库的简单增删查改,对三层体系架构有一个具体的认识。

    OA系统设计方案.doc

    系统体系架构 6 2.3.2. 系统功能架构 7 2.3.3. 系统部署架构 7 2.3.4. 系统软件架构 8 3. 系统功能设计 8 3.1. 功能模块列表 8 3.2. 系统菜单 9 3.3. 个人事项 10 3.3.1. 待办公文 10 3.3.2. 已办公文 12 3.3.3. 待...

    基于mvc三层架构的酒店管理系统

    基于LINQ语言开发,采用B/S应用体系结构,运用了UML技术建立了酒店客房预订、餐饮预订、顾客消费管理等多个子模块的ER图,确定系统的主要功能模块,使本软件工程的结构更加清晰,更快的发展。同时,使用Struts2 + ...

Global site tag (gtag.js) - Google Analytics