1.tomcat安裝
tomcat版本:apache-tomcat-9.0.52.tar.gz
jdk版本:jdk-16.0.2_linux-x64_bin.tar.gz
配置tomcat自啟動的service檔案
通路Ip:8080 檢視界面

顯示此界面即安裝成功
<col>
目錄
說明
bin
服務啟動、停止等相關
conf
配置問價
lib
庫目錄
logs
日志目錄
webapps
應用程式,應用部署目錄
work
jsp編譯後的結果檔案,建議提前預熱通路
檔案名
server.xml
主配置檔案
web.xml
每個webapp隻有“部署”後才能被通路,它的部署方式通常由web.xml進行定義,其存放位置為WEB-INF/
目錄中,此檔案為所有的webapps提供預設部署相關的配置
context.xml
用于定義所有web應用均需加載的Context配置,此檔案為所有的webapps提供預設配置,每個web應用也可以使用自己專用的配置,它通常由專用的配置檔案context.xml來定義,其存放位置為WEB-INF/目錄中
tomcat-users.xml
使用者認證的賬号和密碼檔案
catalina.policy
當使用security選項啟動tomcat時,用于為tomcat設定安全政策
catalina.properties
Tomcat 環境變量的配置,用于設定類加載器路徑,以及一些與JVM調優相關參數
logging.properties
Tomcat 日志系統相關的配置,可以修改日志級别和日志路徑等
上下文描述符檔案位于:
Server,代表整個tomcat容器,一台主機可以啟動多個tomcat執行個體,需要確定端口不沖突
Service,組織Engine和Connector,裡面隻能包含一個Engine
Connector.有HTTP(預設端口8080/tcp)、HTTPS(預設端口8443/tcp)、AJP(預設端口8009/tcp)協定的連接配接器,AJP(Apache Jserv protocol)是一種基于tcp的二進制通訊協定
Engine、Host(虛拟主機)、Context都是容器類元件,可以嵌入其他元件,内部配置如何運作應用程式
可以内嵌到其他元件内,valve、logger、realm、loader、manager等。
listener、cluster
名稱
Server
伺服器,tomcat運作的程序執行個體,一個Server中可以有多個Service,但通常隻有一個
Service
服務,用來組織Engine和Connector的關系,一個Service中隻有一個Engine
Connector
連接配接器,負責用戶端的HTTP、HTTPS、AJP等協定連接配接。一個Connector隻屬于某一個Engine
Engine
用來響應并處理使用者請求。一個Engine上可以綁定多個Connector
Host
虛拟主機
Context
應用的上下文,配置特定url路徑映射和目錄的映射關系:url=>directory
tomcat 啟動一個Server程序。可以啟動多個Server,但一般隻啟動一個
建立一個Service提供服務。可以建立多個Service,但一般頁支建立一個,每個Service中,是Engine和其他連接配接器Connector的關聯配置
可以為這個Server提供多個連接配接器Connector,這些Connector使用了不同的協定,綁定了不同的端口。其作用就是處理來自用戶端的不同連接配接請求或響應
Service内部定義了Engine,引擎才是真正的處理請求的入口,其内部定義多個虛拟主機Host
Host定義虛拟主機,虛拟主機有name名稱,通過名稱比對
Context定義應用程式單獨的路徑映射和配置
多個元件關系如下:
假設來自用戶端的請求為:http://localhost:8080/yang/inex.jsp
浏覽器的請求被發送到服務端8080,tomcat監聽在此端口上。通過監聽的HTTP/1.1Connector獲得此請求
Connector把該請求交給它所在的Service的Engine來處理,并等待Engine的響應
Engine獲得請求locahost:8080/yang/index.jsp,比對它所有虛拟主機Host
Engine比對到名為localhost的Host,即使比對不到也把該請求交給該Host處理,因為該Host被定義為該Engine的預設主機
localhost Host獲得請求/index.jsp 比對它所擁有的所有Context
Host比對到路徑為/yang的Context
path=/yang的Context獲得請求/index.jsp,在它的mapping table中尋找對應的servlet
Context比對到URL PATTERN為*.jsp的servlet,對應于jspServlet類構造HttpServletRequest對象和HttpServletResponse對象,作為參數調用JspServlet的doGet或doPost方法
Context 把執行完了之後的HttpServletResponse對象傳回給Host
Host 把HttpDervletResponse對象傳回給Engine
Engine把HttpServletResponse對象傳回給Connector
Connector把HttpServletResponse對象傳回給浏覽器端
tomcat中預設的網站根目錄是$CATALINA_BASE/webapps/
在tomcat的webapps目錄中,有個非常特殊的目錄ROOT,他就是網站的根目錄
假設要部署應用eshop、forum,将eshop解壓後的檔案放到這個$CATALINA_BASE/webapps/ROOT中
forum解壓後檔案都放在$CATALINA_BASE/webapps/forum目錄下
最終網站的連結關系如下
http://localhost/ 對應于eshop應用,即$CATALINA_BASE/webapps/ROOT目錄
http://localhost/forum/ 對應于forum應用,即$CATALINA_BASE/webapps/forum/
如果同時存在$CATALINA_BASE/webapps/ROOT/forum/,仍以$CATALINA_BASE/webapps/forum優先生效
每一個虛拟主機的目錄都可以使用appBase配置自己的站點目錄,裡面都可以使用appBase目錄下的ROOT目錄作為主站目錄
首頁配置:預設按以下順序查找首頁檔案index.html,index.htm,index.php
WEB-INF/:目前webapp的私有資源路徑,通常存儲目前應用的web.xml和context.xml配置檔案
META-INF/:類似于WEB-INF也是配置資訊,浏覽器無法通路
classes/: 類檔案,目前webapp需要的類
lib/:目前應用用來的jar包
将conf/web.xml中的<welcome-file-list>标簽内容,複制到/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml中
webApp的專有配置優先于系統的全局配置
修改系統的全局配置檔案,需要重新啟動服務生效
修改 webApp的專有配置,無需重新開機即可生效
conf/server.xml 内容如下:
conf/server.xml中可以配置service,connector,Engine,Host等
service配置:一般情況下,一個Server執行個體配置一個Service,name屬性相當于Service的ID
連接配接器配置:
引擎配置:
defaultHost 配置