1. 程式人生 > >tomcat中 server.xml

tomcat中 server.xml

tomcat伺服器, 配置檔案server.xml中的各項配置的意義

<?xml version="1.0" encoding="UTF-8"?>
<!-- 整個配置檔案的根元素
    屬性:
        shutdown: 表示關閉 Server 的指令
        port: Server接收shutdown指令的埠號,設為-1可以禁掉該埠。
    Server的主要任務:
        就是提供一個介面讓客戶端能夠訪問到這個Service集合
        同時維護它所包含的所有的Service的宣告週期
        包括如何初始化、如何結束服務、如何找到客戶端要訪問的Service
 
--> <Server port="8005" shutdown="SHUTDOWN"> <!-- 代表一個 Engine 元素及一組與之相連的 Connector 元素 Service的作用: 是在 Connector 和 Engine 外面包了一層, 把它們組裝在一起, 對外提供服務 一個 Service 可以包含多個 Connector , 但是隻能包含一個 Engine 其中 Connector 的作用是從客戶端接收請求, Engine 的作用是處理接收進來的請求 Tomcat可以提供多個Service,不同的Service監聽不同的埠
--> <Service name="Catalina"> <!-- 外部客戶端傳送請求到特定 Service 介面 屬性: port: 請求的埠 protocol: 請求的協議 redirectPort: 規定當強制要求https而請求時http時,重定向到埠號為 8443 的 Connector connectionTimeout: 連線的超時時間 Connector的主要功能: 是接收連線請求, 建立Request和Response物件用於和請求端交換資料 然後分配執行緒讓 Engine 來處理這個請求, 並把產生的Request和Response物件傳給 Engine
--> <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/> <!-- Engine 包含了 Host ,一個Engine元件可以處理Service中的所有請求 屬性: name: 用於日誌和錯誤資訊(在整個 Server 中唯一) defaultHost: 指定預設 host 名稱,當接受的請求的 host 名不存在時,一律使用此值處理(因此必須與 下邊的一個 Host 的 name 屬性值匹配) Engine的作用: Engine元件在Service元件中有且只有一個 Engine是Service元件中的請求處理元件 Engine元件從一個或多個 Connector 中接收請求並處理,並將完成的響應返回給Connector,最終傳遞給客戶端 Engine元件中可以內嵌1個或多個Host元件,每個Host元件代表Engine中的一個虛擬主機 --> <Engine defaultHost="localhost" name="Catalina"> <!-- Host 包含了 Context ,一個Host元件可以處理髮向一個特定虛擬主機的所有請求 屬性: name: 制定虛擬主機的主機名 unpackWARs: 是否將代表web應用的war檔案解壓(true:解壓後執行web應用, false:直接使用war檔案執行) deployOnStartup: 在伺服器啟動時是否檢查新的web專案 autoDeploy: 伺服器在執行是是否定期檢查行的web專案 Host的作用: 執行多個Web應用(一個 Context 代表一個Web應用),並負責安裝、展開、啟動和結束每個Web應用 Host元件代表的虛擬主機,對應了伺服器中一個網路名實體(”www.test.com”,”116.25.25.25”) --> <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <!-- 一個Context元件可以處理一個特定Web應用的所有請求 Context的作用: Context元素代表在特定虛擬主機上執行的一個Web應用 Context是Host的子容器, 每個Host中可以定義任意多的Context元素 這裡並沒有出現Context元素的配置, 這是因為,Tomcat開啟了自動部署,Web應用沒有在server.xml中配置靜態部署,而是由Tomcat通過特定的規則自動部署。 --> <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"/> </Host> </Engine> </Service> </Server>