Tomcat体系架构

打印 上一主题 下一主题

主题 1973|帖子 1973|积分 5919

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Context–上下文

Context是一组称为容器的Tomcat组件的最内层元素,它代表一个Web应用步伐。Tomcat在加载应用步伐时自动实例化并配置尺度上下文。作为配置的一部门,Tomcat还处理\WEB-INF\web.xml应用步伐文件夹文件中定义的属性,并使其可供应用步伐使用。
Connector–连接器

**连接器处理与客户端的通信。**Tomcat有多个连接器,例如用于大多数HTTP流量的HTTP连接器和AJP连接器(将Tomcat连接到另一个Web服务器(如Apache HTTPD服务器)时使用的AJP协议)。
Tomcat的默认配置包括用于处理HTTP通信的连接器。默认环境下,此连接器等待通过端口8080发出的请求。这就是为什么我们的示例的URL始终以http://localhost:8080/。请留意,对所有应用步伐的请求都通过此连接器的单个实例。每个新请求都会导致在请求持续时间内涵连接器内保持运动状态的新线程的实例化。有关Tomcat的互联网上的文章通常将此连接器称为“ Coyote”。
Connector的connectionTimeout属性设置为20000表现会话为5小时,33分钟,和不运动的20秒后停止,而**redirectPort =” 8443“**意味着,需要安全套接字层(SSL)输送到来的请求被重定向到端口8443。
AJP连接器答应Tomcat仅处理动态网页,并答应纯HTML服务器(例如,Apache Web服务器)处理静态页面的请求。这最大化了处理请求的效率。您可以注释掉这个连接器,因为今天tomcat自己非常快,大概只是如果您不打算与Tomcat一起使用Web服务器。
Host-主机

**主机是网络名称(例如www.yourdomain.com)与Tomcat服务器的关联。**主机可以包含恣意数量的上下文(即应用步伐)。您可以在同一服务器上定义多个主机。例如,如果您已注册域yourdomain.com,则可以定义主机名,例如w1.yourdomain.com和w2.yourdomain.com。请记着,只有域名服务器将其名称映射到盘算机的IP地点时,才能从Internet访问它。
Tomcat的默认配置包括名为localhost的主机localhost和您的盘算机之间的关联是通过在文件中写入条目来完成的C:\Windows\System32\drivers\etc\hosts。
Host属性“ appBase ”定义Tomcat安装文件夹中的应用步伐目次。然后,每个应用步伐由该目次中的路径标识。唯一的例外是路径ROOT,它映射到空字符串。localhost的应用步伐基目次是webapps。这意味着目次“ C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\ROOT\” 中的应用步伐由空字符串标识。因此,其URL为“ http://localhost:8080/”。对于驻留在ROOT以外的目次中的其他应用步伐,如“ C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\myapp\”,URL就像“ http://localhost:8080/myapp/”。
属性**autoDeploy =“true”**属性表现如果appBase在Tomcat运行时将应用步伐放在目次中,它将自动部署。
Engine–引擎

**引擎表现特定服务的请求处理管道。**由于服务大概具有多个连接器,因此引擎接收并处理来自这些连接器的所有请求,将响应交还给相应的连接器以传输到客户端。
引擎必须包含一个或多个主机,其中一个主机被指定为默认主机。默认的Tomcat配置包括引擎Catalina,它包含主机localhost(显然被指定为默认主机,因为它是唯一的主机)。Catalina引擎处理通过HTTP连接器接收的所有传入请求,并发回相应的响应。它根据请求标头中包含的信息将每个请求转发到正确的主机和上下文。
Service–服务

**服务是一个中心组件,它位于服务器内部,并将一个或多个连接器与一个引擎绑定。**Tomcat的默认配置包括Catalina服务,它将HTTP和AJP连接器与Catalina引擎相关联。因此,Connector和Engine是Service元素的子元素。
Service元素很少由用户自定义,因为默认实现简朴而实用。
Server–服务器

**Server是顶级组件,代表Tomcat的一个实例。**它可以包含一个或多个服务,每个服务都有自己的引擎和连接器。
如今让我们讨论上面使用的其他几个概念server.xml。
Listener–监听器

监听器是一个Java对象,通过实现org.apache.catalina.LifecycleListener接口,可以响应特定变乱。


  • AprLifecycleListener:启用Apache Portable Runtime(APR)库。该库为tomcat提供操作体系级支持。
  • JasperListener:启用Jasper,它是JSP引擎。此侦听器可以重新编译已更新的JSP文档。
  • JreMemoryLeakPreventionListener:处理大概导致内存泄漏的差异已知环境。
  • GlobalResourcesLifecycleListener:负责实例化与全局Java命名和目次接口(JNDI)关联的托管bean。
  • ThreadLocalLeakPreventionListener:还处理大概导致内存泄漏的差异已知环境。
GlobalNamingResources–命名资源

该GlobalNamingResources元素只能在Server组件中定义。**它定义了可在整个服务器上访问的JNDI资源。**默认环境下定义的唯一资源server.xml是通过该文件定义的基于用户和密码内存的数据库conf/tomcat-users.xml。
Realm

Realm组件可以出如今任何容器组件(Engine,Host和Context)中。它表现用户,密码和用户脚色的数据库。其目的是支持基于容器的身份验证。
别的UserDatabaseRealm,还提供以下领域类 JDBCRealm通过其JDBC驱动步伐连接到关系数据库),DataSourceRealm(连接到通过JNDI命名的JDBC数据源),JNDIRealm(连接到轻量级目次访问协议目次)和MemoryRealm(在内存中加载XML文件)。
Valve–阀门

Valve是类似拦截器的元素,当插入到Container(Context,Host或Engine)中时,会在到达应用步伐之前拦截所有传入的HTTP请求。这使您能够预处理指向特定应用步伐的请求; 到虚拟主机中运行的应用步伐或引擎中运行的所有应用步伐。
可以多次使用阀门,例如
该RemoteAddrValve阀可以让你选择性地答应或他们的源IP地点的基础上块的请求。它支持两个属性 - 答应和阻止。

该RemoteHostValve阀的运作就像远程地点过滤,但对客户端的主机名,而不是客户端的IP地点。
该RequestDumperValve传入请求日记的具体信息,因此是用于调试。
的single sign on valve,包括在主机容器中时,有需要一种身份验证该主机的所有应用步伐的影响。如果没有这个阀门,用户必须在使用每个单独的应用步伐之前输入他的ID和密码。
如今都说互联网寒冬,其实只要自身技能本领够强,咱们就不怕!我这边专门针对Android开辟工程师整理了一套【Android进阶学习视频】、【全套Android面试秘籍】、【Android知识点PDF】。如有需要获取资料文档的朋友,可以点击我的GitHub免费获取!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表