Tomcat簡介及組成介紹(1)

(若有不足或錯誤之處還請多指導)

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" />    

                        
                               
                               

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章