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元素類型及其用法的大量文檔