Tomcat配置文件详解

Tomcat配置文件详解

前言

在前面的文章中我们介绍了tomcat的架构组成,各部分组件的工作原理以及降权安装。这些都是广域知识点,要想研究一个服务内部的配置和原理,还是需要从配置文件下手,要足够熟悉每个参数的意义和配置,这样我们在对服务进行调优以及排错才能有思路。不多说下面我们一起来学习把。


Tomcat目录结构

1.重要目录

2.程序发布目录

META-INF:主要存放工程自身的一些信息,元文件信息,通常由开发工具,环境自动生成

WEB-INF:java web 应用的安全目录,所谓安全就是客户端无法访问,只有服务端可以

/WEB-INF/classes:存放程序所需要的Java class文件

/WEB-INF/lib :存放程序所需要的所有jar文件

/WEB-INF/web.xml :web应用的部署配置文件。他是工程中最重要的配置文件,它面熟了servlet和组成应用的其他组件,以及应用初始化参数,安全管理约束等。


配置文件解释

1.Server.xml

以上只是针对默认的server.xml进行标注。有些重要属性在次记录:

Server字段

介绍:主要配置一些管理端口执行shutdown操作

  • address 等待关机命令的ip地址,如果未指定默认是localhost
  • port 等待关机命令的端口号,设置为-1代表禁用端口

Service字段

介绍:一个server有多个service,每个service名字独立,默认是Catalina

  • name  定义service名字,默认是Catalina

Executor字段

介绍:用来配置tomcat中组件之间的共享连接池

  • name 线程池名字,唯一,供Connector元素的executor属性使用
  • maxThreads 最大活跃线程数,默认200
  • minSpareThreads 最小活跃线程数,默认25
  • maxIdleTime 当前活跃线程大于minSpareThreads时,空闲线程关闭的最大等待时间 ,默认60000ms
  • maxQueueSize线程池满情况下的请求排队大小。
<Service name="xxx">
  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="300" minSpareThreads="25"/>
</Service>

Connector字段

介绍:用来配置连机器相关

  • asyncTimeout  异步请求超时,默认30s
  • port 请求连接的tcp port  默认8080 ,设置为0回随机选取一个未占用的端口
  • protocol  一般设置为Http/1.1,这种情况下连接模型回在NIO和APR/native中自动根据配置选择

Engine字段

介绍:Egine是所有Connector接受的请求发往Containner处理的入口。

  • defaultHost 默认主机名,用来标识将处理指向此服务器上主机名称,但未在此配置文件中配置的请求的主机

Host字段

介绍:一个Host代表一个虚拟主机,他是一个服务器的网络名称,如www.wangtingwei.com与运行的tomcat特定服务器关联

  • appBase   <虚拟主机对应应用的基础路径,可以是绝对路径xxxxx,也可以是相对路径,相对于${CATALINA_BASE}>
  • xmlBase   < 虚拟主机xml基础路径,里面有Contexl xml配置文件 ,可以是绝对路径,或者${CATALINA_BASE} 相对路径>
  • createDirs < 当appBase和xmlBase不存在时,是否创建目录,默认为true>
  • autoDeploy  <默认开启,是否周期性检查appBase和xmlBase并deploy web 应用和context描述符,生产建议关闭,因为自动部署不稳定,资源消耗大。开发环境可以开启>
  • deployIgnore   <忽略deploy正则>
  • deployOnStartup < tomcat启动时候是否自动deploy ,默认为true>

Context 字段

介绍:一个Host可以有多个Context,一个Context代表一个应用程序

  • docBase  <Context的Root路径 ,和Host的appBase路径相结合,可以确定web的实际目录>
  • path    <相当于Nginx中的location ,用来匹配规则的。如果是/代表后面不带任何字符串>
  • privileged   <是否使用Tomcat提供的manager  servlet>
  • reloadable    </WEB-INF/classes/和/WEB-INF/lib/目录中class文件如果发生变化是否自动重新加载 ,默认为false ,生产环境也不建议开启>
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading...