Tomcat之server.xml文件简单理解




一、server.xml实例

这是我Tomcat7中的server.xml文件,只不过我把注释都删除了。

<Server port="8005" shutdown="SHUTDOWN">
	<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
	<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>
		<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">

		<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
		<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
		<Engine defaultHost="localhost" name="Catalina">
			<Realm className="org.apache.catalina.realm.LockOutRealm">
				<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
			</Realm>
			<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
				<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" />
				<Context docBase="servlet-demo05-ServletContext" path="/" reloadable="true"
					source="org.eclipse.jst.jee.server:servlet-demo05-ServletContext" />
			</Host>
		</Engine>
	</Service>
</Server>

二、核心组件解释

请看注释

<!-- Server元素在最顶层,代表整个Tomcat容器。
作用:提供一个接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service
属性:shutdown属性表示关闭Server的指令;
	port属性表示Server接受shutdown指令的端口号,设置为-1可以禁用该端口;-->
<Server port="8005" shutdown="SHUTDOWN">
	<!-- Service元素作用是:将Connector和Engine组装在一起,对外提供服务
	属性:name属性表示这个服务的名字,这个服务命名为Catalina;-->
	<Service name="Catalina">
		<!-- Connector的作用是:从客户端接收连接请求。通过配置Connector,可以控制请求Service的协议及端口号。
		属性:connectionTimeout属性表示连接的超时时间,20000秒;
			prot表示Tomcat监听HTTP请求,使用的是8080端口;
			protocol表示协议,协议为HTTP/1.1;
			redirectPort表示当强制要求https而请求是http时,重定向至端口号为8443的Connector-->
		<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
		<!-- 这个配置是为了:Tomcat与其他HTTP服务器集成时,就需要用到这个连接器 -->
		<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
		<!-- Engine作用是:请求处理。
		属性:name属性用于日志和错误信息,在整个Server中应该唯一。
			defaultHost属性指定了默认的host名称,当发往本机的请求指定的host名称不存在时,一律使用defaultHost指定的host进行处理;因此,defaultHost的值,必须与Engine中的一个Host组件的name属性值匹配。 -->
		<Engine defaultHost="localhost" name="Catalina">
			<!-- Host虚拟主机的作用,是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。
			属性:appBase属性指定了该去什么文件夹下找这个web应用
				name属性指定虚拟主机的主机名,一个Engine中有且仅有一个Host组件的name属性与Engine组件的defaultHost属性相匹配;
				unpackWARs指定了是否将代表Web应用的WAR文件解压;如果为true,通过解压后的文件结构运行该Web应用,如果为false,直接使用WAR文件运行Web应用。 -->
			<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
				<!-- Context元素代表在特定虚拟主机上运行的一个Web应用。
				属性:docBase指定了该Web应用使用的WAR包路径,或应用目录。
					path指定了访问该Web应用的上下文路径,当请求到来时,Tomcat根据Web应用的 path属性与URI的匹配程度来选择Web应用处理相应请求。
					reloadable属性指示tomcat是否在运行时监控在WEB-INF/classes和WEB-INF/lib目录下class文件的改动。如果值为true,那么当class文件改动时,会触发Web应用的重新加载。
					source属性暂时我还没看懂。值中间冒号后面是我的项目名,如果删除了这句我Eclipse中启动项目会失败 -->
				<Context docBase="servlet-demo05-ServletContext" path="/" reloadable="true"
					source="org.eclipse.jst.jee.server:servlet-demo05-ServletContext" />
			</Host>
		</Engine>
	</Service>
</Server>

参考链接

详解Tomcat 配置文件server.xml

发布了86 篇原创文章 · 获赞 104 · 访问量 6618

猜你喜欢

转载自blog.csdn.net/weixin_44034328/article/details/103865433
今日推荐