前言
Tomcat主配置文件(server.xml)是Tomcat服务器的主要配置文件,文件位置在conf目录下,它包含了Tomcat的全局配置信息,包括监听端口、虚拟主机、安全配置、连接器等。
1 server.xml组件类别
顶级组件:位于整个配置的顶层。如:server。
- 容器类组件:可以包含其他组件的组件。如:service、engine、host、context。
- 连接器组件:连接用户请求至Tomcat。如:connector。
- 被嵌套类组件:位于一个容器中,不能包含其他组件。如value、logger。
2 组件介绍
组件名称 |
功能介绍 |
engine |
核心容器组件,定义Tomcat服务器内部的容器,与Service元素一起定义了Tomcat服务器的整体架构。catalina引擎,负责通过connector接收用户请求,并处理请求,将请求转至对应的虚拟主机host。 |
host |
类似于httpd中的虚拟主机,一般而言支持基于FQDN的虚拟主机,允许在同一台服务器上运行多个网站或应用程序。 |
context |
定义一个应用程序的上下文,包括Web应用程序的路径、名称、文档根目录等,是一个最内层的容器类组件(不能再嵌套)。配置context的主要目的指定对应的webapp的根目录,类似于httpd的alias,其还能为webapp指定额外的属性,如部署方式等。 |
connector |
定义Tomcat服务器与外部应用程序或客户端之间的连接,接收用户请求,通常用于HTTP或HTTPS通讯,类似于httpd的listen配置监听端口。 |
Service |
定义Tomcat服务器提供的服务,通常包含一个或多个Connector(连接器),但只能有一个引擎engine。 |
Server |
定义Tomcat服务器的全局属性,其中的port属性定义了Tomcat服务器本身监听的端口号。 |
Valve |
通过提供不同类型的阀门,拦截请求并在将其转至对应的webapp前进行某种处理操作,可以用于任何容器中,比如记录日志(access log valve)、基于IP做访问控制(remote address filter valve),实现对Tomcat服务器的访问控制、流量控制、日志记录等功能。 |
loggor |
日志记录器,用于记录组件内部的状态信息,可以用于除context外的任何容器中。 |
Realm |
定义Tomcat服务器的安全认证和授权机制。可以用于任意容器类的组件中,关联一个用户认证库,实现认证和授权。可以关联的认证库有: UserDatabaseRealm(使用JNDI自定义的用户认证库)、MemoryRealm(认证信息定义在tomcat-users.xml中)和JDBCRealm(认证信息定义在数据库中,并通过JDBC连接至数据库中查找认证用户)。 |
3 server.xml配置文件详解
server.xml 文件原版:
将原文件中英文注释行删掉并添加了中文详解注释。
元素代表整个容器,是Tomcat实例的顶层元素,由org.apache.catalina.Server接口来定义,它包含一个元素,并且它不能做为任何元素的子元素。 port 指定Tomcat监听shutdown命令端口,终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdowm命令,该属性是必须的,其端口号可以修改。 shutdown 指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串,该属性必须设置。
Service服务组件
Connector主要参数
Engine 核心容器组件,catalina引擎,负责通过connector接收用户请求,并处理请求,将请求转至对应的虚拟主机host。
defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值一样。
Realm 表示存放的用户名、密码及role的数据库。
host参数
4 主要参数详解
4.1 Connector主要参数详解
Connector是Tomcat服务器与外部应用程序或客户端之间的连接,常见的Connector类型包括HTTP、HTTPS、AJP等。
参数 |
参数说明 |
Connector |
定义Tomcat服务器与外部应用程序或客户端之间的连接,接收用户请求,通常用于HTTP或HTTPS通讯,类似于httpd的listen配置监听端口。 |
port |
指定Connector监听的端口号,用于监听来自客户端的请求。 |
protocol |
连接器使用的协议,指定Connector要使用的协议类型,常见的有HTTP/1.1、HTTP/2、AJP/1.3等。 |
connectionTimeout |
指定超时的时间数(以毫秒为单位),即在指定时间内未收到客户端请求,则连接被关闭。 |
redirectPort |
指定重定向端口,即在使用HTTPS时,自动将HTTP请求重定向到HTTPS。 |
maxParameterCount |
最大可以创建的处理请求的线程数。 |
4.2 host参数详解
在Tomcat中,一个物理服务器可以部署多个虚拟主机,每个虚拟主机拥有自己的域名和独立的配置,这些虚拟主机通过Host元素来实现。
参数 |
参数说明 |
host |
Server元素的子元素,代表一个虚拟主机 |
name |
虚拟主机的名称 |
appBase |
指定该虚拟主机的Web应用程序的基础目录,Web应用程序在该目录下部署。 |
unpackWARs |
是否在部署Web应用程序时解压WAR文件,可以提高Web应用程序的访问速度。 |
autoDeploy |
是否自动部署新的Web应用程序,如果设置为true,则Tomcat会自动检测appBase目录下的新的Web应用程序,并进行自动部署。 |
4.3 Context参数说明
在Tomcat中,Context参数是指一个Web应用程序的上下文信息,它包含了Web应用程序的配置信息、资源、Servlet等。当一个Web应用程序被部署到Tomcat服务器上时,Tomcat会为该Web应用程序创建一个Context对象,用于管理Web应用程序的运行时状态。
参数 |
参数说明 |
Context |
表示一个web应用程序,通过为war文件。 |
docBase |
表示Web应用程序的根目录,即Web应用程序的发布目录。应用程序的路径或者是WAR文件存放的路径,也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径。 |
path |
表示Web应用程序的上下文路径,即访问该Web应用程序的URL路径。 |
reloadable |
这个属性非常重要,如果为true,则tomcat会白动检测应用程序的/WEB-INF/lib和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重启tomcat的情况下改变应用程序。 |
crossContext |
用于指定不同的Web应用程序之间是否可以共享ServletContext对象。如果crossContext被设置为true,则表示允许跨上下文共享ServletContext对象,否则不允许。 |
到此这篇关于Tomcat主配置文件server.xml详解的文章就介绍到这了,更多相关Tomcat server.xml内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!