Tomcat基本安装与组件简介

一、Tomcat

  • 通常意义上的web服务器接受请求后,只是单纯地响应静态资源,如html文件,图片文件等,不能在后端进行一定的处理操作。
  • Tomcat是Apache下的一个子项目,它具备web服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的java代码servlet,同时将执行的结果以html代码的形式写回客户端。
  • Tomcat由一系列的组件构成,其中核心的组件有三个:
  • web容器——完成web服务器的功能。
  • servlet容器——名字为catalina,用于处理servlet代码。
  • jsp容器——用于将jsp动态网页翻译成servlet代码。

二、Tomcat安装

  • yum仓库安装

    yum list all | grep -i jdk  #查看yum仓库内的jdk
    yum install java-1.8.0-openjdk  #选择适合要安装的tomcat版本的JDK
    yum install tomcat  tomcat-lib  tomcat-admin-webapps  tomcat-webapps  tomcat-docs-webapp
  • 下载jdk-VERSION-OS-ARCH.rpm包,下载tomcat的二进制压缩包
    例如:
    apache-tomcat-8.5.29.tar.gz
    jdk-8u144-linux-x64
    • 安装
    [[email protected] app ]# rpm -ivh  jdk-8u144-linux-x64.rpm
    [[email protected] app ]# tar xf apache-tomcat-8.5.29.tar.gz -C /usr/local/
    [[email protected] app ]# cd /usr/local/
    [[email protected] local ]# ls
    apache-tomcat-8.5.29  etc    include  lib64    sbin   src   bin   games    lib      libexec  share
    [[email protected] local ]# ln -sv apache-tomcat-8.5.29/  tomcat
    ‘tomcat’ -> ‘apache-tomcat-8.5.29/’
    
    [[email protected] local ]# vim /etc/profile.d/java.sh
        export JAVA_BASE=/usr/java/jdk.VERSION
        export PATH=$JAVA_BASE:$PATH
    [[email protected] local ]# vim /etc/profile.d/tomcat.sh
        export CATALINA_BASE=/usr/local/tomcat
        export PATH=$CATALINA_BASE/bin:$PATH
    [[email protected] local ]# . /etc/profile.d/{java.sh,tomcat.sh}
    #配置java和tomcat的环境变量
    [[email protected] local ]# useradd tomcat
    [[email protected] local ]# chown -R tomcat.tomcat /usr/local/tomcat/*
    
  • 使用 catalina.sh 脚本进行启动、关闭、查看版本信息,等等

Tomcat目录文件组成

  • tomcat 的目录结构
    bin:脚本,及启动时用到的类;
    conf:配置文件目录;
    lib:库文件,Java类库,jar;
    logs:日志文件目录;
    temp:临时文件目录;
    webapps:webapp的默认目录;
    work:工作目录,存放编译后的字节码文件;
  • tomcat的配置文件构成:
    server.xml:主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;
    web.xml:每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置;
    context.xml:每个webapp都可以使用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
    tomcat-users.xml:用户认证的账号和密码文件;角色(role),用户(User);此文件在tomcat启动时被装入内存;
    catalina.policy:当使用-security选项启动tomcat时,用于为tomcat设置安全策略;
    catalina.properties:Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数;
    logging.properties:日志系统相关的配置;
  • JSP WebAPP的组织结构:
    /: webapps的根目录
    index.jsp, index.html:主页;
    WEB-INF/:当前webapp的私有资源路径;通常用于存储当前webapp的web.xml和context.xml配置文件;
    META-INF/:类似于WEB-INF/;
    classes/:类文件,当前webapp所提供的类;
    lib/:类文件,当前webapp所提供的类,被打包为jar格式;

Tomcat组件

Tomcat的核心组件:server.xml

<Server>
    <Service>
        <connector/>
        <connector/>
        ....
        <Engine>
                <Host>
                        <Context/>
                        <Context/>
                            ...
                </Host>
                <Host>
                            ...
                </Host>
                        ...
        </Engine>
    </Service>
</Server>
  • 每一个组件都由一个Java“类”实现,这些组件大体可分为以下几个类型:

    • 顶级组件:Server
    • 服务类组件:Service
    • 连接器组件:http, https, ajp(apache jserv protocol)
    • 容器类:Engine, Host, Context
    • 被嵌套类:valve, logger, realm, loader, manager, ...
    • 集群类组件:listener, cluster, ...

1、server组件

Server:代表tomcat instance,即表现出的一个java进程;监听在8005端口,只接收“SHUTDOWN”。各server监听的端口不能相同,因此,在同一物理主机启动多个实例时,需要修改其监听端口为不同的端口;
port="-1",
shutdown="RANDOM_CHARCTER"

2、service组件

Service:用于实现将一个或多个connector组件关联至一个engine组件,每个连接器通过一个特定的端口和协议接收入站请求交将其转发至关联的引擎进行处理;

3、connector组件

Connector:负责接收请求至Servlet容器内的Web应用程序,连接客户端和服务器分配的HTTP协议的8080端口,可以根据自己需求改变端口,一个引擎可以配置多个连接器,但每个连接器必须使用不同端口,默认连接器是基于HTTP/1.1的Coyote。同时Tomcat也支持HTTP/1.1 , HTTP/2.0 , AJP 协议;(http https ajp)

  • 属性

    • port="8080" 指定端口
    • protocol="HTTP/1.1" 指定协议
    • connectionTimeout="20000" 请求连接超时
    • URIEncoding:对URI的编码方式. 优化建议选择UTF-8
    • useBodyEncodingForURI:是否采用指定的contentType而不是URIEncoding来编码URI中的请求参数
    • address:监听的IP地址;默认为本机所有可用地址;
    • maxThreads:最大并发连接数,默认为200;
    • enableLookups:是否启用DNS查询功能;
    • acceptCount:等待队列的最大长度;

4、Engine组件

Engine:Servlet实例,即servlet引擎。

  • 它检查每个请求,然后根据请求发往指定host或context,并将处理后的结果返回给客户端。
  • 如果Tomcat被配置成为独立服务器,默认引擎就是已经定义好的引擎。而如果Tomcat被配置为Apache Web服务器的提供Servlet功能的后端,默认引擎将被忽略,因为Web服务器自身就能确定将用户请求发往何处。
  • 其内部可以一个或多个host组件来定义站点; 通常需要通过defaultHost来定义默认的虚拟主机;
  • Engine容器中可以包含Realm、Host、Listener和Valve子容器。
  • 属性

    • defaultHost 默认主机名,用于标识将处理指向此服务器上主机名称但未在此配置文件中配置的请求的主机。这个名字必须匹配其中一个嵌套的主机元素的名字属性。
    • name 此引擎的逻辑名称,用于日志和错误消息。 在同一服务器中使用多个服务元素时,每个引擎必须分配一个唯一的名称。

5、host组件

Host:位于engine内部用于接收请求并进行相应处理的主机或虚拟主机,示例:

<Host name="www.a.com"  appBase="/appdata/webapps"
                unpackWARs="true" autoDeploy="true">
</Host>
  • 属性

    • appBase:此Host的webapps的默认存放目录,指存放非归档的web应用程序的目录或归档的WAR文件目录路径;可以使用基于$CATALINA_BASE变量所定义的路径的相对路径;
    • autoDeploy:在Tomcat处于运行状态时,将某webapp放置于appBase所定义的目录中时,是否自动将其部署至tomcat;
    • unpackWars:在启用此webapps时是否对WAR格式的归档文件先进行展开;默认为true;

6、Centext组件

Context在某些意义上类似于apache中的路径别名,一个Context定义用于标识tomcat实例中的一个Web应用程序;示例:

<Host name="node1.magedu.com" appBase="/web/apps" unpackWARs="true" autoDeploy="true">
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                    prefix="node1_access" suffix=".log"
                    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
                <Context path="/test" docBase="test" reloadable="">
                    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                    prefix="node1_test_access_" suffix=".log"
                    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
                </Context>
            </Host> 
  • 属性

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

7、valve

Valve类似于过滤器,它可以工作于Engine和Host/Context之间、Host和Context之间以及Context和Web应用程序的某资源之间。一个容器内可以建立多个Valve,而且Valve定义的次序也决定了它们生效的次序。示例:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="localhost_access_log" suffix=".txt"
                pattern="%h %l %u %t &quot;%r&quot; %s %b"   />
  • valve存在多种类型

    • 定义访问日志:org.apache.catalina.valves.AccessLogValve
    • 定义访问控制:org.apache.catalina.valves.RemoteAddrValve
      示例:
      <Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="172\.16\.100\.67"/&gt;

原文地址:http://blog.51cto.com/13120511/2089141

时间: 2024-10-06 02:18:50

Tomcat基本安装与组件简介的相关文章

tomcat编译安装

一.简介      1.tomcat简介: Tomcat就是一个Java EE的不完整实现,是一个web容器,也可以成为web服务器.它只使用了Java EE附带的两个类库-----Servlet与JSP,Tomcat服务器是Apache组织开发的一种JSP引擎,同时支持Servlet,本身就具有WEB服务器的功能,但是在WEB服务器方面Tomcat处理静态的HTML页面不如Apache迅速,也没有Apache健壮,所以我们一般将Tomcat与Apache配合使用,让Apache处理静态页面的请

java+tomcat+apache安装整合,启动/关闭,添加开机启动服务

安装java1.8 #yum update    服务器更新源码包 #rpm -qa |grep -E '^open[jre|jdk]|j[re|dk]'  搜索任何版本的已安装JDK组件 java-1.8.0-openjdk-headless-1.8.0.60-2.b27.el7_1.x86_64 pygobject2-2.28.6-11.el7.x86_64 pygobject3-base-3.8.2-6.el7.x86_64 java-1.8.0-openjdk-1.8.0.60-2.b2

solr在tomcat下安装、配置

solr简介 solr是受欢迎的,速度极快的开源企业搜索平台.主要功能包括强大的全文搜索,搜索词高亮显示,分面搜索,近实时的索引,动态聚类,数据库集成,丰富的文件(例如,Word,PDF)处理,和空间搜索.Solr是高度可靠的,可扩展性和容错性,提供了分布式的索引,复制和负载均衡的查询,自动故障转移和恢复,集中配置和更多.许多世界上最大的互联网网站的导航.搜索功能都是采用solr实现的. solr是一个基于Lucene.采用JAVA语言编写.运行于servlet容器中(如jetty,tomcat

C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装

原文:C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装 要求: JDK.Mysql.Tomcat三者制作成一个安装包, 不能单独安装,安装过程不显示三者的界面, 安装完成要配置好JDK环境.Mysql服务.Tomcat 服务 目的: 解决客户在安装软件的复杂配置和繁琐 便于管理软件版本 便于系统集成 分析: 由于不能使用软件的原始安装版本,故只能将JDK的安装目录拷贝出来,放在D盘的SoftSource文件夹,由于要管理三者,将这三个放进一个文件夹里面 Mysql.Tom

Tomcat的安装配置与web项目发布

Tomcat的安装配置与web项目发布 今日内容 1.Web开发基本概念(了解) 2.tomcat的安装和配置(必会) 3.web项目的发布(必会) 4.Http协议简介(理解) Web开发基本概念 1.软件的架构 常用的软件:QQ.京东.淘宝.kgc 1)C/S架构 解释:客户端/服务器. 特点:需要下载并安装,每次更新需要下载,客户端和服务器有可能都需要更新 控件炫酷,因为它调用的是系统底层的图形的API 2)B/S架构 解释:浏览器/服务器架构.它是基于Http协议的,用的是请求/响应模式

Tomcat基本安装和优化方法

简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求.实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的. Tomcat安装 安

tomcat的安装配置以及使用

tomcat的安装配置以及使用 简介 tomcat 是 apache 软件基金会的核心项目,由 apache.SUN 等公司来一起研发. tomcat是JSP+servlet的运行平台. tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的

Tip:Exchange DAG部署的时候自动安装群集组件

我们在启用DAG高可用性组的时候,不需要手动先去安装failover cluster组件,在启用DAG的时候会自动安装该组件,如图. 该组件自动安装后,再继续配置DAG. ==============================================

Tomcat的安装和使用

Tomcat的安装和使用 =============================================================================== 概述: =============================================================================== Tomcat的安装及程序环境  1.安装Tomcat ★Tomcat binary release: # tar xf apache-tomcat