安装Tomcat
1.地址
- 官方地址:tomcat.apache.org/
2.环境要求
必须安装对应的JDK版本
3.目录结构与含义
目录结构
含义
- bin:存放tomcat的命令
- conf:放tomcat的一些配置文件
- logs:存放tomcat在运行过程中产生的日志文件
- temp:存放tomcat在运行过程中产生的临时文件
- lib:存放tomcat运行需要加载的jar包
- webapps:存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用
- work:存放tomcat在运行时的编译后文件,例如JSP编译后的文件
4.windows安装Tomcat8.5
步骤
- 准备JDK,如果已经有则省略
- 去官网下载Tomcat
- 解压zip包即可(不要有中文路径)
下载Tomcat
解压zip
启动
- 在命令行下,打开$CATALINA_HOME/bin目录,输人“startup.bat”运行Tomcat
- 如果采用exe方式安装,可通过点击开始菜单中的快捷方式,打开Tomcat服务管理工具,启动Tomcat服务
- 如果添加了Windows服务,可进人“控制面板”一“管理工具”一“服务”,找到“ApacheTomcat8.5 Tomcat8”服务,双击并“启动”
停止
- 在命令行下,打开$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>