Tomcat的Server.xml配置详解

本文详细解析了Tomcat服务器的配置文件,包括监听器、全局资源、连接器、引擎、虚拟主机、上下文配置等内容,深入讲解了各参数的作用及配置方法。

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

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
	<!-- Listener监听器 -->
	<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
	<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
	<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
	<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
	<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
	<!-- 全局资源 -->
	<GlobalNamingResources>
		<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>
	<!-- Tomcat服务,name=Catalina,用于 绑定 连接器与 Engine -->
	<Service name="Catalina">
		<!-- 
			Tomcat连接器
			port:端口号
			protocol:协议
			connectionTimeout:连接超时时间(单位毫秒)
			redirectPort:如果使用https://来访问这个8080端口,就会重定向到8443这个端口,8443也得有对应的连接器,否则转发不过去
			minThread	服务器启动时创建的处理请求的线程数
			maxThread	最大可以创建的处理请求的线程数
			enableLookups	如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
			acceptCount	指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
			SSLEnabled 是否开启 sll 验证,在Https 访问时需要开启。
		-->
		<Connector port="8080" protocol="HTTP/1.1"
				   connectionTimeout="20000"
				   redirectPort="8443" />
		<!--
			protocol="AJP/1.3",是Apache和Tomcat之间在进行反向代理的时候的一个私有协议(体积更轻,性能更快)
		-->
		<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
		
		<!--
			Engine引擎
			name="Catalina"核心引擎
			defaultHost:默认host,host就是虚拟主机,基于域名区分,当没有域名能区分的时候,就将请求发给默认的host
		-->
		<Engine name="Catalina" defaultHost="localhost">
			<!--
				Realm:领域
				UserDatabaseRealm将UserDatabase的数据注入到引擎中,便于引擎访问UserDatabase
			-->
			<Realm className="org.apache.catalina.realm.LockOutRealm">
			<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
				   resourceName="UserDatabase"/>
			</Realm>
			<!--
				appBase=webapps,这也就是为什么可以直接解析webapps的原因
				unpackWARs=true,存在war包则解析
				autoDeploy=false,自动部署
			-->
			<Host name="localhost"  appBase="webapps"
				unpackWARs="true" autoDeploy="true">
			<Logger /> <!-- 日志配置-->
			<!-- 
				上下文配置
				一个host 下可以配置多个Context ,每个Context 都有其独立的classPath。相互隔离,以免造成ClassPath 冲突。
			-->
			<Context "/test" path=""/> 
			<!--
				Valve:阀门也可以理解为一个过滤器,放在了host里面则服务于整个host,放在Context内则只服务于那一个Context
				作用:打印请求日志,IP过滤,限流等	
				具体配置要基于具体的Valve 接口的子类。以下即为一个访问日志的Valve.
			-->
			<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
				   prefix="localhost_access_log" suffix=".txt"
				   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
		  </Host>
		</Engine>
  </Service>
</Server>

复制代码

转载于:https://juejin.im/post/5c2875c16fb9a04a0e2d48d1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值