总结tomcat的核心组件以及根目录结构
1. 目录结构
目录 | 说明 |
---|---|
bin | 服务启动、停止等相关程序和文件 |
conf | 配置文件 |
lib | 库目录 |
logs | 日志目录 |
temp | 临时目录 |
webapps | 应用程序,应用部署目录 |
work | jsp编译后的结果文件,建议提前预热访问 |
1.1 bin(程序文件)
文件名 | 说明 |
---|---|
catalina.sh | 启动,停止调用的脚本 |
shutdown.sh | 停止服务 |
startup.sh | 启动服务 |
version.sh | 查看版本号 |
1.2 conf目录(配置文件)
文件名 | 说明 |
---|---|
server.xml | 主配置文件 |
web.xml | 每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置,每个web应用也可以使用专用配置文件,来覆盖全局文件 |
context.xml | 用于定义所有web应用均需加载的Context配置,此文件为所有的webapps提供默认配置,每个web应用也可以使用自已专用的配置,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中,覆盖全局的文件 |
tomcat-users.xml | 用户认证的账号和密码文件 |
catalina.policy | 当使用security选项启动tomcat时,用于为tomcat设置安全策略 |
catalina.properties | Tomcat 环境变量的配置,用于设定类加载器路径,以及一些与JVM调优相关参数 |
logging.properties | Tomcat 日志系统相关的配置,可以修改日志级别和日志路径等 |
1.3 logs(日志文件)
文件名 | 说明 |
---|---|
catalina.日期.log | 按日期切割的catalina.out,和 |
catalina.out | tomcat访问日志信息它记录的访问的时间,IP ,访问的资料等相关信息。 |
manager.日期.log | manager项目日志 |
host-manager.日期.log | host-manager项目日志 |
localhost.日期.log | 运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息. |
localhost_access_log.日期.txt | tomcat访问日志 |
2. Tomcat 核心组件
Tomcat核心组件有6个,分别为Tomcat有Server、Service、Connector、Engine、Host和Context等,下面为大家一一介绍:
2.1 Server
Server元素在最顶层,代表整个Tomcat容器,因此它必须是server.xml中唯一一个最外层的元素。一个Server元素中可以有一个或多个Service元素。
Server的主要任务,就是提供一个接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service。
2.2 Service
Service的作用,是在Connector和Engine外面包了一层,把它们组装在一起,对外提供服务。一个Service可以包含多个Connector,但是只能包含一个Engine;其中Connector的作用是从客户端接收请求,Engine的作用是处理接收进来的请求。Tomcat可以提供多个Service,不同的Service监听不同的端口。
2.3 Connector
Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine。通过配置Connector,可以控制请求Service的协议及端口号。
2.4 Engine
Engine组件在Service组件中有且只有一个;Engine是Service组件中的请求处理组件。Engine组件从一个或多个Connector中接收请求并处理,并将完成的响应返回给Connector,最终传递给客户端。
实际上,Engine、Host和Context都是容器,但它们不是平行的关系,而是父子关系:Engine包含Host,Host包含Context。
2.5 Host
Host是Engine的子容器。Engine组件中可以内嵌1个或多个Host组件,每个Host组件代表Engine中的一个虚拟主机。Host组件至少有一个,且其中一个的name必须与Engine组件的defaultHost属性相匹配。
Host虚拟主机的作用,是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。
2.6 Context
Context元素代表在特定虚拟主机上运行的一个Web应用。每个Web应用基于WAR文件,或WAR文件解压后对应的目录(这里称为应用目录)。Context是Host的子容器,每个Host中可以定义任意多的Context元素。