Tomcat server.xml簡單配置
阿新 • • 發佈:2019-01-06
Tomcat是Apache開源軟體組織的一個軟體專案,它本身完全用Java語言編寫,它是一個優秀的Servlet容器.
1.基本功能
Tomcat作為執行Servlet的容器,其基本功能是負責接收和解析來自客戶的請求,同時把客戶的請求傳送給相應的Servlet,並把Servlet的響應結果返回給客戶.
2.組成結構
該結構主要是/conf/server.xml中的結構,用於配置Tomcat.
在該Xml程式碼中,每個元素都代表一種Tomcat元件,這些元素可分為4類:
- 頂層類元素:< Server>和< Service>
- 聯結器類元素:< Connector>,代表介於客戶與伺服器之間的通訊介面.
- 容器類元素:< Engine>,< Host>,< Context>,< Cluster>.
- 巢狀類元素:< Valve>,< Realm>
首先看一個建立好了的server.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 啟動Server 在埠8005處等待關閉命令 如果接受到"SHUTDOWN"字串則關閉伺服器 -->
<Server port="8005" shutdown="SHUTDOWN">
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<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 -->
<Service name="Catalina">
<!-- Http聯結器,監聽8080埠,負責建立Http連線 -->
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
<Connector SSLEnabled="true" clientAuth="false" keystoreFile="conf/.keystore" keystorePass="123456" maxThreads="150" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS"/>
<!-- AJP聯結器,監聽8009埠,負責和其他的Http伺服器建立連線 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
<!-- 自帶名為Catalina的Engine元件,它的預設虛擬主機為localhost -->
<Engine defaultHost="localhost" name="Catalina">
<!-- 定義的安全域,所有的虛擬主機都共享這個Realm -->
<Realm className="org.apache.catalina.realm.LockOutRealm" />
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<!-- 名字為localhost的虛擬主機 -->
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<!-- 訪問日誌閥,能夠將客戶的請求資訊寫到日誌檔案中 -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
<!-- 一個web專案,它的目錄為appBase + docBase = webapps/ServletFramework -->
<Context docBase="ServletFramework" path="/ServletFramework" reloadable="true" source="org.eclipse.jst.jee.server:ServletFramework"/></Host>
<p align="left"/>
</Engine>
</Service>
</Server>
3.工作模式
3.1 獨立的Servlet容器
Tomcat作為獨立的Web伺服器來單獨執行,Servlet容器元件作為Web伺服器的一部分而存在,這是Tomcat的預設工作模式.在這種模式下,Tomcat需要啟動一個Java虛擬機器.
3.2 其他Web伺服器程序內的Servlet容器
這種模式下,Tomcat分為Web伺服器外掛和Servlet容器元件兩部分.如果客戶端傳送呼叫Servlet的請求,web伺服器外掛獲取請求的控制並將它轉發給Servlet容器元件.
3.3 其他Web伺服器程序外的Servlet容器
這種模式下,Tomcat分為Web伺服器外掛和Servlet容器元件兩部分.Web伺服器外掛在其他web伺服器外部地址空間啟動一個Java虛擬機器程序,Servlet容器組將再次Java虛擬機器上執行。