03.安装Tomcat

1 阅读5分钟

安装Tomcat

1.地址

2.环境要求

必须安装对应的JDK版本

3.目录结构与含义

目录结构

76fdc94481876e1774d1e127aa21feec.png

含义

  • bin:存放tomcat的命令
  • conf:放tomcat的一些配置文件
  • logs:存放tomcat在运行过程中产生的日志文件
  • temp:存放tomcat在运行过程中产生的临时文件
  • lib:存放tomcat运行需要加载的jar包
  • webapps:存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用
  • work:存放tomcat在运行时的编译后文件,例如JSP编译后的文件

4.windows安装Tomcat8.5

步骤

  1. 准备JDK,如果已经有则省略
  2. 去官网下载Tomcat
  3. 解压zip包即可(不要有中文路径)

下载Tomcat

42140bf6c914f0c79fcd484d21265a9c.png

解压zip

76fdc94481876e1774d1e127aa21feec-1747882758536.png

启动

  1. 在命令行下,打开$CATALINA_HOME/bin目录,输人“startup.bat”运行Tomcat
  2. 如果采用exe方式安装,可通过点击开始菜单中的快捷方式,打开Tomcat服务管理工具,启动Tomcat服务
  3. 如果添加了Windows服务,可进人“控制面板”一“管理工具”一“服务”,找到“ApacheTomcat8.5 Tomcat8”服务,双击并“启动”

停止

  1. 在命令行下,打开$CATALINA_HOME/bin目录,输人“shutdown.bat”停止Tomcat

5.配置Tomcat

启动配置

通过编辑$CATALINA_HOME/bin/catalina.bat文件,可以修改Tomcat的启动配置,比如内存分配

6.配置详解

介绍

Tomcat服务器的配置主要集中于tomcat/conf下的catalina.policy,cataina.properties,context.xml,server.xml,tomcat-users.xml,web.xml文件

server.xml

介绍

是Tomcat服务器的核心配置文件,包含了Tomcat的Servlet容器(Catalina)的所有配置

配置文件详解
<!-- 
    port:监听关闭请求的端口号
    shutdown:关闭命令
-->
<Server port = "8005" shutdown = "SHUTDOWN">
    <!-- 监听器 -->
    <!--用于以日志形式输出服务器,操作系统,JVM的版本信息 -->
    <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
    <!--用于加载(服务器启动)和销毁(服务器停止)APR。如果找不到APR库,则会输出日志,并不影响Tomcat启动 -->
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
    <!--用于避免JRE内存泄漏问题 -->
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
    <!-- 用户加载(服务器启动)和销毁(服务器停止)全局命名服务 -->
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
    <!-- 用于在Context停止时重建Executor池中的线程,以避免ThreadLocal相关的内存泄漏 -->
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
    
    <!-- 全局命名资源,定义了UserDatabase的一个JNDI(java命名和目录接口),通过pathname的文件得到一个用户授权的内存数据库 -->
    <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml"/>
    </GlobalNamingResources>

    <Service name="Catalina">
        <!--
            默认情况下Service下面没有配置这个,一个Service下面的多个连接器可以共用一个线程池
            如果没有配置则多个连接器用自己的线程池
            name:线程池名称,用于 Connector 中指定
            namePrefix:所创建的每个线程的名称前缀,一个单独的线程名为 namePrefix+threadNumber
            maxThreads:池中最大线程数
            minSpareThreads:活跃线程数,也就是核心线程数,这些线程不会销毁,会一直存在
            maxIdleTime:线程空闲时间,超过该时间后,空闲线程会被销毁,默认值6000(1分钟),单位毫秒
            maxQueueSize:在被执行前最大线程排队数目,默认为int最大值,除非特殊情况,这个值不需要更改
            prestartminSpareThreads:在启动executor时是否立即创建minSpareThreads个线程数,默认为false,即在需要时才创建线程
            threadPriority:线程优先级,默认值为5
            daemon:线程是否以daemon的方式运行,默认值为true
            className:用于实现此组件的java类的名称,这个类必须实现接口org.apache.catalina.Executor。不给定该属性时将采用默认的标准类org.apache.catalina.core.StandardThreadExecutor
        -->
        <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/>
    
        <!--
            连接器配置
            port:监听的端口
            protocol:支持的协议
            connectionTimeout:接收连接后的等待超时时间,单位为毫秒,-1表示不超时
            redirectPort:如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的端口
            executor:指定共享线程池的名称,也可以配置其他属性来修改内部线程池的属性
            URIEncoding:用于指定编码URI的字符编码,Tomcat8默认为UTF-8,7为ISO-8859-1
        -->
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"/>
        <!-- 
            name:用于指定Engine的名称,默认为Catalina。该名称会影响一部分Tomcat的存储路径(如临时文件)
            defaultHost:默认使用的虚拟主机名称,当客户端请求指向的主机无效时,
将交由默认的虚拟主机处理, 默认为localhost
        -->
        <Engine name="Catalina" defaultHost="localhost">
            <!-- 
                name:当前Host通用的网络名称,必须与DNS服务器上的注册信息一致,Engine中包含的Host必须存在一个名称与Engine的defaultHost设置一致
                appBase:当前Host的应用基础目录,当前Host上部署的web应用均在该目录下(可以是绝对目录,相对路径)。默认为webapps
                unpackWARs:设置为true,Host在启动时会将appBase目录下war包解压为目录。设置为false Host将直接从war文件启动
                autoDeploy:控制tomcat是否在运行时定期检测并自动部署新增或变更的web应用
            -->
            <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
                <!-- 通过给Host添加别名,我们可以实现同一个Host拥有多个网络名称 -->
                <Alias>www.web2.com</Alias>
                <!-- 
                    path:指定访问该Web应用的URL入口
                    docBase:指定Web应用的文件路径,可以为绝对路径,也可以为相对于Host的appBase属性的相对路径,如果Web应用采用开放目录结构,那就指定Web应用的根目录;如果Web应用是个WAR文件,那就指定WAR文件的路径
                    reloadable:如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/class和WEB-INF/lib目录下CLASS文件的改动,如果检测到有calss文件被更新,服务器会自动重新加载Web应用
                -->
                <Context path="/sample" docBase="sample" reloadable="true"></Context>
            </Host>
        </Engine>
    </Service>
</Server>