(若有不足或錯誤之處還請多指導)
Tomcat 簡介
Tomcat是由Apache軟件基金會下屬的Jakarta項目開發的一個Servlet容器,按照Sun Microsystems提供的技術規範,實現了對Servlet和Java Server Page(JSP)的支持,並提供了作爲Web服務器的一些特有功能,如Tomcat管理和控制平臺、安全域管理和Tomcat閥等。由於Tomcat本身也內含了一個HTTP服務器,它也可以被視作一個單獨的Web服務器。但是,不能將 Tomcat 和 Apache Web 服務器混淆,Apache Web Server 是一個用 C 語言實現的 HTTP web server;這兩個 HTTP web server 不是捆綁在一起的。Apache-Tomcat 包含了一個配置管理工具,也可以通過編輯 XML 格式的配置文件來進行配置。
Tomcat最初是由Sun的軟件構架師詹姆斯·鄧肯·戴維森開發的。後來他幫助將其變爲開源項目,並由Sun貢獻給Apache軟件基金會。由於大部分開源項目O'Reilly都會出一本相關的書,並且將其封面設計成某個動物的素描,因此他希望將此項目以一個動物的名字命名。因爲他希望這種動物能夠自己照顧自己,最終,他將其命名爲Tomcat(英語公貓或其他雄性貓科動物)。而O'Reilly出版的介紹Tomcat的書籍(ISBN 0-596-00318-8)的封面也被設計成了一個公貓的形象。而Tomcat的Logo兼吉祥物也被設計成了一隻公貓。
Tomcat提供了一個Jasper編譯器用以將JSP編譯成對應的Servlet。
Tomcat的Servlet引擎通常與Apache或者其他Web服務器一起工作。
由於Tomcat是使用Java開發的,所以它可以運行在任何一個裝有JVM的不同操作系統之上。
Tomcat的邏輯組件
<1>. Server是Tomcat的一個實例,一個Server可以有多個service
<2>. Connector (連接器,可以有多個) : 爲了連接不同的請求,會有不同的連接器,如: http connection ,https connection ,AJP連接器(Apache Jesery Protocol) 實現apache 與 Tomcat 通信連接的
<3>. Service 讓Server的Connector 與引擎關聯起來
1. 是Server的一個子組件
2. 關聯一個或多個 Connector到某個Engine
3. 一個Service內部只能有一個引擎,一個引擎可以關聯多個Connector
<4>. 一個引擎就是一個Container(容器) 也就是一個獨立的web運行環境
1. 可以包含多個Host
2. 但要有一個默認的Host(虛擬主機)
<5>. Host
1. 是引擎的子組件
2. 可以包含多個Context
3. 每個Context對應於一個Web應用程序,而每一個Web應用程序需要至少一個web.xml(部署描述符文件)
<6>. Context:上下文
每一個獨立的主機可以包含多個Context
額外的組件:
valve : 閥門, 能夠定義在容器內部,實現將具有某些特徵的數據包或報文,對其歸類採取一定動作的工具
Realm : 領域 能夠定義在容器內部,爲某一個應用程序提供用戶認證的機制, 用戶在訪問這個容器時,是需要認證的
<*>關於Tomcat各組件的詳細信息可以參考這篇文章:http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/index.html
Tomcat的目錄結構(默認是在/usr/local/ 下)
bin/
.bat 是在windows上執行的腳本
.sh 是在linux上執行的腳本
bootstrap.jar
commons-daemon-native.tar.gz
tomcat-native.tar.gz 或者需要解壓出來自己重新編譯安裝,依賴於apr 和apr-utils,讓tomcat支持apr連接器
conf/
server.xml 當前Tomcat的主配置文件
web.xml 應用程序的佈署描述符文件
context.xml
tomcat-user.xml 啓用用戶認證時用到的文件(定義用戶的帳號、角色、密碼)
catalina.policy 引擎策略 ,施加到catalina引擎上的安全策略, 在啓動的時候指定 -security 選項
catalina.properties 運行時候的屬性
lib/ 公共類
catalina.jar catalina引擎的實現(catalina是tomcat的引擎)
servlet-api.jar 讓tomcat成爲servlet容器的一個jar文件
temp/
webapps/ 網頁文件存放的默認路徑
host-manager/ 虛擬主機定義和管理,基於web的管理接口,可以通過web管理tomcat
manager/ 佈署工具和會話管理工具
ROOT/ 直接被訪問的網頁文件存放路徑
work/ jsp或tomcat 的工作目錄
**************************************************************************
/bin/version.sh 查看tomcat的環境變量及相關屬性信息 CATALINA_BASE tomcat 實例的運行目錄
在同一個系統上可以啓動多個 tomcat 進程,每個tomcat進程稱之爲一個tomcat的 instance(實例)
配置tomcat的連接器,讓不同的實例使用不同的端口提供服務
不同實例的運行目錄不同,都要有自己的工作目錄,配置文件都在實例的運行目錄下,每一個實例都要有自己的工作環境
CATALINA_HOME tomcat軟件的默認安裝路徑
CATALINA_TMPDIR
/bin/configtest.sh 檢查配置
/bin/catalina.sh 可以調用其它的腳本 version/configtest/start
**************************************************************************
以下三個端口都在 server.xml 文件中定義
8005 控制sever的一個telnet的控制遠程連接口 <Server port="8005" shutdown="SHUTDOWN"> eg: # telnet 127.0.0.1 8005; SHUTDOWN
8009 連接器所監聽的端口 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> AJP協議只可以接受前端apache服務器的請求
8080 連接器所監聽的端口 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> HTTP協議可以接受用戶的請求
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />