Tomcat配置文件server.xml详解(结合上一篇)

本文详细介绍了Tomcat服务器的配置参数,包括监听端口、连接超时时间、线程池大小等关键设置。此外还讲解了如何配置日志、SSL安全连接及虚拟主机等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?xml version="1.0" encoding="UTF-8"?>
<!-- port:指定一个端口,负责监听关闭tomcat的请求,shutdown:指定向端口发送的命令字符串-->
<Server port="8005" shutdown="SHUTDOWN">

<!-- 监听器:通常实现tomcat内部进行通信的,可在各组件之间完成通信-->
<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
<Listener className="org.apache.catalina.core.JasperListener"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>

<!-- 全局命名资源:方便全局引用,所以为其起完名称后可以随便调用的-->
<GlobalNamingResources>

<!-- pathname:即调用tomcat-user.xml配置文件进行用户认证-->
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
</GlobalNamingResources>

<!-- 服务:一个服务组件通常包含一个引擎和此引擎相关联的一个或多个链接服务器-->
<Service name="Catalina">
<!-- 连接服务器:表示客户端和service之间的连接,一个引擎能配置多个连接器 但是每个连接器的端口不能冲突;负责接收客户请求,以及向客户返回响应结果-->
<!-- port:所在监听端口,protocol:协议版本号,connectionTimeout:连接超时时间,单位毫秒-->
<!-- maxThreads设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200 -->
<!-- connectionTimeout定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间 -->
<Connector port="8080" 
maxThreads="1500"
maxProcessors="450"
connectionTimeout="20000" 
protocol="HTTP/1.1" 
redirectPort="8443"/>

<!-- redirectPort指定转发端口.如果当前端口只支持non-SSL请求,在需要安全通信的场命,将把客户请求转发至SSL的redirectPort端口-->
<!-- enableLookups如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用request.getRemoteHost方法返回客户机主机名.默认值为true -->
<Connector port="8009" enableLookups ="false" protocol="AJP/1.3" redirectPort="8443"/>
<!--maxThreads:最大线程,scheme:协议版本,secure:安全的-->
<!--clientAuth:不验证客户端,sslProtocol:协议用的是tls-->
<!--
<Connector port="8443"
protocol="HTTP/1.1"
SSLEnabled="true"
maxThreads="700"
scheme="https"
secure="true"
maxProcessors="300"
clientAuth="false"
sslProtocol="TLS" />
 -->
<!--引擎:表示指定service中的请求处理机,接收和处理来自Connector的请求.可以接收用户的http请求,并构建响应报文,而且可以在内部处理java程序的整个套间-->
<!-- defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的 -->
<Engine defaultHost="localhost" name="Catalina">

<!-- Realm 表示存放用户名,密码及role的数据库 -->
<!-- className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口 -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
         <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>

<!-- appBase 应用程序基本目录,即存放应用程序的目录-->
<!-- unpackWARs:如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件,-->
<!-- autoDeploy:如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用-->
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

<!-- ValveclassName:定义阀门,java中类的记录方式,当前所处域名反过来写的记录方式-->
<!-- prefix,suffix:日志的命名-->
<!-- pattern:访问日志的格式-->
<!-- directory 指定log文件存放的位置 -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>

<!-- Context 表示运行在虚拟主机上的一个web应用程序,通常为WAR文件 -->
<!-- 一个<Host>可以包含多个<Context>元素.每个web应用有唯一的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个ServletContext对象. -->
<!-- docBase 应用程序的路径或者是WAR文件存放的路径 -->
<!-- path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/****  -->
<!-- reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载应用程序,我们可以在不重起tomcat的情况下改变应用程序 -->
<Context docBase="sample-demo" path="/sample-demo" reloadable="true" source="org.eclipse.jst.jee.server:sample-demo"/>
</Host>
</Engine>
</Service>
</Server>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值