天天看點

Tomcat

1.tomcat安裝

tomcat版本:apache-tomcat-9.0.52.tar.gz

jdk版本:jdk-16.0.2_linux-x64_bin.tar.gz

配置tomcat自啟動的service檔案

通路Ip:8080 檢視界面

Tomcat

 顯示此界面即安裝成功

<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

Tomcat

名稱

Server

伺服器,tomcat運作的程序執行個體,一個Server中可以有多個Service,但通常隻有一個

Service

服務,用來組織Engine和Connector的關系,一個Service中隻有一個Engine

Connector

連接配接器,負責用戶端的HTTP、HTTPS、AJP等協定連接配接。一個Connector隻屬于某一個Engine

Engine

用來響應并處理使用者請求。一個Engine上可以綁定多個Connector

Host

虛拟主機

Context

應用的上下文,配置特定url路徑映射和目錄的映射關系:url=&gt;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中的&lt;welcome-file-list&gt;标簽内容,複制到/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 配置

上一篇: tomcat
下一篇: Tomcat