<?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 "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
複製程式碼