tomcat配置文件server.xml含义说明

jsp 专栏收录该内容
3 篇文章 0 订阅
tomcat的配置文件一般都在conf文件夹里,主要有server.xml,context.xml,tomcat_user.xml,web.xml四个常用配置文件,server.xml主要是服务器设置的,例如端口设置,路径设置。
下面对server.xml中tomcat的默认配置进行说明,了解含义之后,就可以根据自己的实际情况进行修改。
各组件关系图:
<Server port="8005" shutdown="SHUTDOWN">
<Server>

Server即Catalina servlet组件,它是server.xml的最外层元素。

port="8005"——指定8005端口负监听tomcat的请求。若设置为-1,则禁止通过端口关闭Tomcat,同时shutdown.bat也不能使用。

shutdown="SHUTDOWN"——收到字符串"SHUTDOWN"表示关闭,修改shutdown的值,对shutdown.bat无影响。

 <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
  <Listener className="org.apache.catalina.core.JasperListener" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

Listener即监听器,负责监听特定的事件,当特定事件触发时,Listener会捕捉到该事件,并做出相应处理。Listener通常用在Tomcat的启动和关闭过程。Listener可嵌在Server、Engine、Host、Context内。

className=""——指定实现org.apache.catalina.LifecycleListener接口的类。


 <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <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>

GlobalNamingResources用于配置JNDII(Java Naming and Directory Interface,Java命名和目录接口)。

<Service name="Catalina">
</Service>

Service包装ExecutorConnectorEngine,以组成一个完整的服务。

className——指定实现org.apache.catalina. Service接口的类,默认值为org.apache.catalina.core.StandardService。

name———Service的名字。

Server可以包含多个Service组件。

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
Connector是Tomcat接收请求的入口,每个Connector有自己专属的监听端口。

port:"8080"——Connector监听客户服务的端口:8080。

protoco="HTTP/1.1"——Connector使用的协议(HTTP/1.1或AJP/1.3)。

connectionTimeout="20000"——每个请求的最长连接时间20000ms。

redirectPort="8443"——服务器正在处理Http请求时,为收到的SSL(Secure Sockets Layer 安全套接层)处理重定位端口:8443。

<Engine name="Catalina" defaultHost="localhost">
</Engine>
Service内必须包含一个Engine组件,Service包含一个或多个Connector组件,Service内的Connector共享一个Engine。
Engine负责处理Service内的所有请求。它接收来自Connector的请求,并决定传给哪个Host来处理,Host处理完请求后,将结果返回给EngineEngine将结果返回给Connector。

name:"Catalina"——Engine的名字。

defaultHost="localhost"——指定默认处理请求的虚拟主机名:localhost。要求和Host name定义一致。
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
       resourceName="UserDatabase"/>

Realm可以理解为包含用户、密码、角色的” 数据库 ”。Tomcat 定义了多种 Realm 实现: JDBC Database Realm、DataSource Database Realm、JNDI Directory Realm、UserDatabase Realm
className:""——指定Realm 使用的类名,此类必须实现org.apache.catalina.Realm 接口

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
</Host>

Host负责管理一个或多个Web项目.
name="localhost"——指定默认虚拟主机名:localhost。
appBase="webapps"——默认Web源代码存放目录,可以是war文件或目录。(绝对路径、相对路径均可)
unpackWARS="true"——是否自动将war文件解压,true-自动解压,false-直接从WAR文件运行Web项目。
autoDeploy="true"——是否开启自动部署。设为true,Tomcat检测到appBase有新添加的Web项目时,会自动将其部署。
其他属性:

startStopThreads-线程池内的线程数量。Tomcat启动时,Host提供一个线程池,用于部署Web项目。

startStopThreads为0,并行线程数=系统CPU核数。

startStopThreads为负数,并行线程数=系统CPU核数+startStopThreads,如果(系统CPU核数+startStopThreads)小于1,并行线程数设为1。

startStopThreads为正数,并行线程数= startStopThreads。

startStopThreads默认值为1。

startStopThreads为默认值时,Host只提供一个线程,用于部署Host下的所有Web项目。如果Host下的Web项目较多,由于只有一个线程负责部署这些项目,因此这些项目将依次部署,最终导致Tomcat的启动时间较长。此时,修改startStopThreads值,增加Host部署Web项目的并行线程数,可降低Tomcat的启动时间。

Tomcat配置多Host可参考此文:http://grass51.blog.51cto.com/4356355/1123400

<Valve className="org.apache.catalina.valves.AccessLogValve" 
       directory="logs"
       prefix="localhost_access_log." 
       suffix=".txt"
       pattern="%h %l %u %t "%r" %s %b" />

Valve可以理解为Tomcat的拦截器,而我们常用filter为项目内的拦截器。Valve可以用于Tomcat的日志、权限等。Valve可嵌在Engine、Host、Context内。

className=""——指定Valve 使用的类名,如用org.apache.catalina.valves.AccessLogValve 类可以记录应用程序的访问信息。

directory="logs"——指定log 文件存放的位置。

prefix=""——指定log 文件的前缀。

suffix=""——指定log 文件的后缀。

pattern=""——有两个值,common 方式记录远程主机名或ip 地址,用户名,日期,第一行请求的字符串,HTTP 响应代码,发送的字节数。combined 方式比common 方式记录的值更多。

  • 2
    点赞
  • 0
    评论
  • 3
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

凯哥多帅哦

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值