1.4.4 Cluster
Tomcat使用Cluster元素提供上下文属性复制,WAR部署和会话复制,并且可以嵌套在Engine或Host元素中。 Manager,Channel,Valve,Deployer和ClusterListener元素嵌套在其中。 有关这些元素及其使用方式的更多信息,请参见Apache的Tomcat配置页面。 虽然此元素具有高度可配置性,但默认配置通常足以满足大多数用户的需求。
参考:https://tomcat.apache.org/tomcat-8.5-doc/config/cluster.html
1.5 Nested Components
这些元素嵌套在container元素中以定义附加功能。
1.5.1 Listeners
listeners可以嵌套在Server,Engine,Host或Context元素中,指向将在特定事件发生时执行操作的组件。
虽然大多数组件具有className属性,但是为了选择元素的不同实现,Listener元素是唯一的,因为除了默认值之外还有许多唯一的实现,所有这些实现都需要Listener元素嵌套在Server元素中。 因此,正确设置此属性很重要。 当前可用的实现是APR生命周期监听器,Jasper监听器,服务器生命周期监听器,全局资源生命周期监听器,JMX远程生命周期监听器和JRE内存泄漏预防监听器。
详细配置参考:https://tomcat.apache.org/tomcat-8.5-doc/config/listeners.html
1.5.2 Global Naming Resources
此元素用于为特定服务器指定全局Java命名和目录接口(JNDI)资源,与任何每个Web应用程序JNDI上下文不同。 如果您愿意,您可以通过定义它们并使用<ResourceLink>链接到它们来声明此元素中的<resource-ref>和<resource-env-ref>的JNDI资源查找特性。 此方法的结果等同于在应用程序的“/WEB-INF/web.xml”文件中包含<resource-ref>元素。 如果使用此技术,请务必定义指定和配置对象工厂及其属性所需的任何其他参数。
<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>
1.5.3 Realm
此元素可以嵌套在任何Container元素内,定义包含该Container的用户名,密码和角色的数据库。 如果嵌套在Host或Engine元素中,则Realm元素中定义的特征默认情况下将被所有较低级容器继承。 重要的是正确地设置此元素的“className”属性,因为存在多种实现,以提供不同类型的容器管理安全性。 这些实现用于将Catalina暴露给其他系统的用户安全管理,例如JDBC,JNDI和DataSource。
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
1.5.4 Resources
这个元素有一个简单的能力,将Catalina定向到Web应用程序使用的静态资源。 这些资源包括classes,HTML和JSP文件。 使用此元素允许Catalina访问文件系统以外的位置中包含的文件,例如WAR归档或JDBC数据库中包含的资源。 至关重要的是要记住,允许Web应用程序访问包含离开文件系统的资源的这种技术只能在应用程序不需要直接访问存储在文件系统上的资源时使用。
1.5.5 Valve
Valve嵌套在Engine、Host和Context元素中,以将特定功能插入到请求处理管道中。 这是一个非常通用的元素,Valve的类型范围从认证者到过滤器、以及修复WebDAV错误。 许多这些类型的Valve只能嵌套在特定的元件中。 不用说,注意这个元素的“className”属性是必不可少的。 Apache的Tomcat配置页面提供了有关Valve元素类型及其用法的大量文档