`
隐形的翅膀
  • 浏览: 497098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat基本组件及其功能

阅读更多
1. Tomcat Connector

Tomcat Connector是Tomcat中的一个重要的组件,它负责监听到达Tomcat的请求,并将这些 请求转换成Servlet规范中所定义的Request,然后将转换后的请求交给Engine组件去处理,最后将Engine返回的Response返回给客户端。

Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。默认情况下,Tomcat在server.xml中配置了两种连接器:

<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080-->

    <Connector port="8080"
               maxThreads="150" 
      minSpareThreads="25" 
      maxSpareThreads="75"
               enableLookups="false"
      redirectPort="8443" 
      acceptCount="100"
               debug="0" 
      connectionTimeout="20000" 
               disableUploadTimeout="true" />

    <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->

    <Connector port="8009" 
               enableLookups="false"
      redirectPort="8443" debug="0"
               protocol="AJP/1.3" /> 


第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。

第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器

2. Tomcat Host组件

Tomcat Host组件在Tomcat中代表一个"Virtual Host",使Tomcat可以在单个Tomcat实例中支持多个"Virtual Host",这样,我们也就可以知道

一个Engine可以包含多个Host组件.

我们先来了解下什么是Host。我们知道,在我们访问一个网站时,我们需要在浏览器的地址栏输入一个网页地址,浏览器会试图将域名解析成P,这个IP代表了连接到互联网的一台主机(Host)。在浏览器向主机发送的HTTP请求中,也包含了请求的Host信息

在最简单的情况下,一台主机只需要对应一个IP,提供一个web服务即可,这种情况下一个IP就对应一台物理主机(Physical Host)。然而,在

多数情况下,一台主机不会只提供一个web服务,因而一台物理主机就需要虚拟出多台主机来,这就是Virtual Host。Virtual Host根据实现技

术的不同可以分为基于名称的Virtual Host和基于IP的Virtual Host。

基于名称的Virtual Host
基于名称的Virtual Host,对于基于名称的Virtual Host来说,每一个Virtual Host对应一个域名,这些域名都解析到同一个IP下去,这样,

这些Virtual Host就共享了这个IP对应的物理主机的资源,在Tomcat中,主要配置以下信息就配置了一个基于名称的Virtual Host:
<Host name="localhosts"  appBase="webapps"    unpackWARs="true" autoDeploy="true"    xmlValidation="false" 
xmlNamespaceAware="false"> </Host> 


当然,在Tomcat中,如果多个Virtual Host仅仅名称是不一样的,其他都是一样的,那么就可以使用别名来配置,如下图:

<Host name="localhosts" 
  appBase="webapps" 
  unpackWARs="true" 
  autoDeploy="true" 
  xmlValidation="false"   xmlNamespaceAware="false">
  <Alias>khotyn.org</Alias> 
</Host> 


基于IP的Virtual Host
不同于基于名称的Virtual Host,在基于IP的Virtual Host中,可以将多个IP地址绑定到同一台物理主机上去,这个是怎么做到的呢?一个方式在物理主机上配置多块网卡,另一个就是通过Virtual Network Interfaces来实现,在Tomcat中配置基于IP的Virtual Host,可以参考下图

中的配置:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000"        

redirectPort="8443" executor="tomcatThreadPool" address="127.0.0.2" useIPVHosts="true"/> 

注意,需要将Connector的useIPVHosts设置成true,默认情况为false,才能够使用基于IP的Virtual Host。

3. Tomcat Context组件


Context代表一个Web应用,它运行在某个指定的虚拟主机(Host)上;每个Web应用都是一个WAR文件,或是一个包含WAR解压后的文件的目录;

Connector组件接收到http请求后,通过将请求URI的最长可能前缀与每个Context的path进行匹配,然后选择相应的Web应用来处理这个http请求。之后,Context会根据web application deployment descriptor文件中定义的servlet映射,会选择一个正确的Servlet来处理请求。Servlet映射必须定义在该Web应用目录层次结构中的/WEB-INF/web.xml中


4. Tomcat Engine组件

Tomcat Engine组件是一个职责相当简单的组件,他的主要作用就是决定从Connecter过来的请求应该交给哪一个Host来处理




分享到:
评论

相关推荐

    Tomcat基本配置.pdf

    ### Tomcat基本配置知识点 #### 一、Tomcat简介 - **Tomcat**: 是Jakarta项目中的一个重要子项目,由Apache软件基金会维护和支持。因其出色的性能及灵活性,被JavaWorld杂志评选为2001年度最具创新的Java产品。...

    TOMCAT原理详解及请求过程

    #### 四、Tomcat架构及常用组件 - **Server组件** - **定义**:`Server`是Tomcat的顶层容器,它代表了整个服务器实例。 - **属性**: - **port**:接收shutdown指令的端口号,默认为8005。 - **shutdown**:...

    tomcat 7 及其源码

    下面将详细介绍Tomcat 7及其源码的相关知识点。 1. **Tomcat结构与组件**: - **Catalina**:核心组件,负责Servlet容器的主要功能,处理HTTP请求和响应。 - ** Coyote**:处理网络连接器和协议处理器,如处理...

    Tomcat免安装版本,解压即用

    对于Java开发者而言,理解并熟练操作Tomcat的这些组件和配置至关重要,因为它们直接影响到Web应用程序的部署和运行。例如,`webapps`目录是放置Web应用的地方,`lib`目录包含Tomcat运行所需的库文件,而`temp`则用于...

    tomcat+mysql+navicat服务器及数据库下载

    【标题】"Tomcat+MySQL+Navicat服务器及数据库下载"所涵盖的知识点非常广泛,涉及了Java Web开发中的核心组件。以下是对这些组件的详细介绍: 1. **Tomcat**:Tomcat是一款开源的Java Servlet容器,由Apache软件...

    how tomcat works 中文版及源码

    通过阅读《How Tomcat Works》中文版和分析源码,开发者不仅可以了解到Tomcat的基本架构,还能深入到细节,理解其在处理请求、管理会话、加载资源等方面的具体实现。这对于优化Web应用性能、调试问题、扩展Tomcat...

    tomcat-coyote.jar.zip

    本文将深入探讨Tomcat Coyote.jar的内涵及其重要性。 Tomcat Coyote是Tomcat内部的一个子项目,它的主要任务是实现Servlet 3.1规范中的网络协议处理器。Coyote这个名字源自美国土狼,象征着这个组件的敏捷和高效。...

    tomcat6.0.14

    此外,Tomcat 6.0.14与其他Java EE组件(如JNDI、JTA和JMX)集成良好,可以实现更复杂的企业级功能。开发者可以利用这些特性创建分布式、事务处理和监控的Web应用。 总之,Apache Tomcat 6.0.14是一个强大且灵活的...

    Professional Apache Tomcat 6

    1. **第1章:Apache Tomcat** - 介绍了Apache Tomcat的基本概念、历史背景及其在Web开发中的角色。 2. **第2章:Web应用程序:Servlets、JSPs和其他更多** - 深入探讨了Servlets和JSPs的工作原理,以及如何使用...

    tomcat7、tomcat6 32位以及64位

    对于新手开发者来说,这样的版本可以帮助他们更好地理解和掌握Tomcat的基本操作,避免因额外组件带来的复杂性。 在Java开发中,Tomcat作为Servlet容器,负责解析HTTP请求,执行Servlet代码,并将结果返回给客户端。...

    jakarta-tomcat-5.0.28

    这个文件包含了应用的部署描述符,定义了Servlet、过滤器、监听器等组件及其映射关系。同时,服务器的全局配置文件`server.xml`可以定制Tomcat的行为,如端口设置、连接器配置等。 4. **性能优化**:Tomcat 5.0.28...

    Tomcat源码研究.pdf

    - **整体架构**:介绍了Tomcat的基本架构,包括Server、Service、Connector和Container等组件。 - **工作原理**:深入剖析了Tomcat如何处理客户端请求的过程,包括请求接收、处理和响应生成。 #### 1.13《How ...

    ubuntu中部署tomcat

    APR(Apache Portable Runtime)是Tomcat的一个性能增强组件,可以提高其处理速度和效率。 ##### 9. 安装Native - 解压tomcat-native安装包: - `sudo tar -zxvf /usr/shopxx/tomcat6.0/bin/tomcat-native.tar.gz ...

    tomcat-8.0.50.zip

    【标题】"Tomcat 8.0.50" 是一款广泛应用...以上就是关于Tomcat 8.0.50及其相关知识点的详细介绍,涵盖了其基本概念、主要组件以及与Web应用程序开发相关的技术。了解和掌握这些知识点对于Java Web开发者来说至关重要。

    tomcat集群搭建及实现细节

    ### Tomcat集群搭建及实现细节 #### 背景与目的 随着互联网应用的日益增长,单一服务器往往难以满足高并发、高可用性的需求。因此,通过构建服务器集群来提高系统的稳定性和处理能力成为一种常见解决方案。对于Java...

Global site tag (gtag.js) - Google Analytics