1. 程式人生 > >Tomcat server.xml簡單配置

Tomcat server.xml簡單配置

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 &quot;%r&quot; %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虛擬機器上執行。