tomcat中 server.xml

时间:2023-03-09 21:38:23
tomcat中 server.xml

tomcat服务器, 配置文件server.xml中的各项配置的意义

<?xml version="1.0" encoding="UTF-8"?>
<!-- 整个配置文件的根元素
属性:
shutdown: 表示关闭 Server 的指令
port: Server接收shutdown指令的端口号,设为-1可以禁掉该端口。
Server的主要任务:
就是提供一个接口让客户端能够访问到这个Service集合
同时维护它所包含的所有的Service的声明周期
包括如何初始化、如何结束服务、如何找到客户端要访问的Service
-->
<Server port="8005" shutdown="SHUTDOWN">
<!-- 代表一个 Engine 元素及一组与之相连的 Connector 元素
Service的作用:
是在 Connector 和 Engine 外面包了一层, 把它们组装在一起, 对外提供服务
一个 Service 可以包含多个 Connector , 但是只能包含一个 Engine
其中 Connector 的作用是从客户端接收请求, Engine 的作用是处理接收进来的请求
Tomcat可以提供多个Service,不同的Service监听不同的端口
-->
<Service name="Catalina">
<!-- 外部客户端发送请求到特定 Service 接口
属性:
port: 请求的端口
protocol: 请求的协议
redirectPort: 规定当强制要求https而请求时http时,重定向到端口号为 8443 的 Connector
connectionTimeout: 连接的超时时间
Connector的主要功能:
是接收连接请求, 创建Request和Response对象用于和请求端交换数据
然后分配线程让 Engine 来处理这个请求, 并把产生的Request和Response对象传给 Engine
-->
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
<!-- Engine 包含了 Host ,一个Engine组件可以处理Service中的所有请求
属性:
name: 用于日志和错误信息(在整个 Server 中唯一)
defaultHost: 指定默认 host 名称,当接受的请求的 host 名不存在时,一律使用此值处理(因此必须与 下边的一个 Host 的 name 属性值匹配)
Engine的作用:
Engine组件在Service组件中有且只有一个
Engine是Service组件中的请求处理组件
Engine组件从一个或多个 Connector 中接收请求并处理,并将完成的响应返回给Connector,最终传递给客户端
Engine组件中可以内嵌1个或多个Host组件,每个Host组件代表Engine中的一个虚拟主机
-->
<Engine defaultHost="localhost" name="Catalina">
<!-- Host 包含了 Context ,一个Host组件可以处理发向一个特定虚拟主机的所有请求
属性:
name: 制定虚拟主机的主机名
unpackWARs: 是否将代表web应用的war文件解压(true:解压后运行web应用, false:直接使用war文件运行)
deployOnStartup: 在服务器启动时是否检查新的web项目
autoDeploy: 服务器在运行是是否定期检查行的web项目
Host的作用:
运行多个Web应用(一个 Context 代表一个Web应用),并负责安装、展开、启动和结束每个Web应用
Host组件代表的虚拟主机,对应了服务器中一个网络名实体(”www.test.com”,”116.25.25.25”)
-->
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<!-- 一个Context组件可以处理一个特定Web应用的所有请求
Context的作用:
Context元素代表在特定虚拟主机上运行的一个Web应用
Context是Host的子容器, 每个Host中可以定义任意多的Context元素
这里并没有出现Context元素的配置, 这是因为,Tomcat开启了自动部署,Web应用没有在server.xml中配置静态部署,而是由Tomcat通过特定的规则自动部署。 -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/>
</Host>
</Engine>
</Service>
</Server>