<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-13  評(píng)論-6  文章-0  trackbacks-0

    Tomcat服務(wù)器配置參考

    Host容器

    概述

    Host元素代表一個(gè)虛擬主機(jī),虛擬主機(jī)將服務(wù)器的網(wǎng)絡(luò)名(比如www.mycompany.com)和運(yùn)行Catalinade的某個(gè)特定服務(wù)器聯(lián)系起來(lái)。為了生效,網(wǎng)絡(luò)名稱(chēng)必須在管理你所在的Internet域的DNS服務(wù)器進(jìn)行登記---請(qǐng)聯(lián)系你的網(wǎng)絡(luò)管理員。

    在許多情況下,系統(tǒng)管理員可能希望為同一個(gè)虛擬主機(jī)或應(yīng)用關(guān)聯(lián)多個(gè)網(wǎng)絡(luò)名稱(chēng)(比如www.mycompany.com和company.com)。這可以利用下面討論的Host Name Alias特征來(lái)完成。

    在Engine元素中可以嵌套一個(gè)或多個(gè)Host元素。在Host元素中可以嵌套context元素。在與每個(gè)Engine相關(guān)聯(lián)的所有Host中,必須有一個(gè)Host的名稱(chēng)與Engine的defaultHost屬性匹配。

    以下的描述使用變量$CATALINA_HOME來(lái)指Tomcat 5安裝的目錄。大多數(shù)的相對(duì)路徑都是以該目錄為基準(zhǔn)。但是,通過(guò)設(shè)置CATALINA_BASE目錄,可以運(yùn)行多個(gè)Tomcat 5實(shí)例,這時(shí)你應(yīng)該使用$CATALINA_BASE來(lái)作為目錄基準(zhǔn),而不是使用$CATALINA_HOME。

    屬性
    公共屬性

    所有Host的實(shí)現(xiàn)必須支持如下屬性:

    屬性 描述
    appBase

    虛擬主機(jī)的Applicaton Base目錄。這是在該虛擬主機(jī)上發(fā)布web應(yīng)用的目錄路徑。你可以指定絕對(duì)路徑,或者使用相對(duì)于$CATALINA_HOME的路徑。有關(guān)web應(yīng)用的自動(dòng)識(shí)別和發(fā)布的更多信息,請(qǐng)參考應(yīng)用自動(dòng)發(fā)布。

    autoDeploy

    這個(gè)標(biāo)志表示,在Tomcat運(yùn)行的時(shí)候,放到appBase目錄下的新的web應(yīng)用是否自動(dòng)發(fā)布。缺省為true。這方面的更多信息參考應(yīng)用自動(dòng)發(fā)布

    backgroundProcessorDelay

    這個(gè)值代表在該host及其子容器(包括所有的wrappers)上調(diào)用backgroundProcess方法的延時(shí),以秒為單位。如果延時(shí)值非負(fù),子容器不會(huì)被調(diào)用,這意味著子容器使用自己的處理線程。如果該值為正,會(huì)創(chuàng)建一個(gè)新的線程。在等待指定的時(shí)間以后,該線程在Host及其子容器上調(diào)用backgroundProcess方法。Host使用后臺(tái)處理進(jìn)行與web應(yīng)用實(shí)時(shí)發(fā)布有關(guān)的操作。如果沒(méi)有指定,缺省值是-1,說(shuō)明host依賴(lài)其所屬的Engine的后臺(tái)處理。

    className

    實(shí)現(xiàn)的Java類(lèi)名。該類(lèi)必須實(shí)現(xiàn)org.apache.catalina.Host接口。如果沒(méi)有指定,使用標(biāo)準(zhǔn)實(shí)現(xiàn)(在下面定義)

    deployOnStartup

    這個(gè)標(biāo)志表明這個(gè)host的web應(yīng)用是否由host configurator 自動(dòng)發(fā)布。缺省為true。這方面的更多信息參考自動(dòng)應(yīng)用發(fā)布。

    name

    虛擬主機(jī)的網(wǎng)絡(luò)名稱(chēng),也就是在DNS服務(wù)器上注冊(cè)的名稱(chēng)。嵌套在Engine的所有Host中,必須有一個(gè)Host的名字與Engine的defaultHost屬性相同。如果想為同一個(gè)虛擬主機(jī)指定多個(gè)網(wǎng)絡(luò)名稱(chēng),參考主機(jī)名別名。

     

    標(biāo)準(zhǔn)實(shí)現(xiàn)

    Host的標(biāo)準(zhǔn)實(shí)現(xiàn)是org.apache.catalina.core.StandardHost。它還支持如下的附加屬性

    屬性 描述
    debug

    與Engine相關(guān)聯(lián)的Logger的調(diào)試信息的詳細(xì)程度。數(shù)字越大,輸出越詳細(xì)。如果沒(méi)有指定,缺省值為0。

    deployXML

    如果不想使用Context XML配置文件來(lái)發(fā)布web應(yīng)用,設(shè)為false。同時(shí)也失去了利用manager應(yīng)用程序安裝web應(yīng)用或者“.war”文件的能力(這些web應(yīng)用或.war文件不在Host的配置基準(zhǔn)目錄$CATALINA_HOME/conf/[engine_name]/[host_name]下面)

    web應(yīng)用使用catalina的安全許可發(fā)布,如果需要讓不可信的用戶(hù)管理web應(yīng)用,這個(gè)值可以設(shè)為false。缺省為true。

    errorReportValveClass

    Host使用的錯(cuò)誤報(bào)告valve的Java類(lèi)名。這個(gè)valve的責(zé)任是輸出錯(cuò)誤報(bào)告。設(shè)置這個(gè)值可以定制Tomcat產(chǎn)生的錯(cuò)誤頁(yè)面的格式。這個(gè)類(lèi)必須實(shí)現(xiàn)org.apache.catalina.Valve接口。如果沒(méi)有指定,使用缺省值

    og.apache.catalina.valvees.ErrorReportValve.

    unpackWARs

    如果希望將位于appBase目錄下的WAR文件解壓縮成對(duì)應(yīng)的目錄結(jié)構(gòu),設(shè)為true。如果希望直接從WAR文件運(yùn)行web應(yīng)用,設(shè)為false。更多信息參考應(yīng)用自動(dòng)發(fā)布。

    workDir

    Host的web應(yīng)用使用的臨時(shí)目錄的路徑。每個(gè)應(yīng)用都有自己的子目錄,用于臨時(shí)的讀寫(xiě)。如果在Context中設(shè)置了workDir屬性,它將會(huì)覆蓋Host的workDir屬性。如Servlet Specification中所述,通過(guò)servlet context的屬性javax.servlet.context.tempdir,這個(gè)目錄可以被servlet使用。如果沒(méi)有指定,使用$CATALINA_HOME/work下面的合適的目錄。

    嵌套組件

    可以在Host元素中嵌套一個(gè)或者多個(gè)Context元素,每個(gè)Context元素代表這個(gè)虛擬主機(jī)下的一個(gè)不同的web應(yīng)用。同時(shí),你可以嵌套一個(gè)DefaultContext元素,用來(lái)定義后續(xù)發(fā)布的web應(yīng)用的缺省值

    可以在Host元素中選擇嵌套一個(gè)DefaultContext元素,用來(lái)定義自動(dòng)發(fā)布的web應(yīng)用的缺省特性。

    下列元素可以嵌套在Host元素中,但至多只能嵌套一個(gè)實(shí)例:

    • Logger - 配置一個(gè)logger,用來(lái)接收和處理Host的所有日志消息,以及這個(gè)Host的所有Context的日志消息(除非被低一級(jí)的Logger配置覆蓋)
    • Realm -配置一個(gè)realm,Realm的用戶(hù)數(shù)據(jù)庫(kù)以及用戶(hù)角色被這個(gè)Host的所有Context共享(除非被低一級(jí)的Realm配置覆蓋)
    專(zhuān)有特征
    訪問(wèn)日志

    正常情況下,運(yùn)行web服務(wù)器會(huì)生成訪問(wèn)日志。訪問(wèn)日志以標(biāo)準(zhǔn)格式為每個(gè)請(qǐng)求輸出一行信息。Catalina包含一個(gè)可選的Valve實(shí)現(xiàn),可以用標(biāo)準(zhǔn)格式生成日志,還可以使用任意定制的格式。

    通過(guò)在Engine,Host或者Context中嵌套一個(gè)Valve元素,Catalina會(huì)為該容器處理的所有請(qǐng)求創(chuàng)建訪問(wèn)日志,如下所示:

    <Host name="localhost" ...>
      ...
      <Valve className="org.apache.catalina.valves.AccessLogValve"
             prefix="localhost_access_log." suffix=".txt"
             pattern="common"/>
      ...
    </Host>
    
    參考Access Log Valve,以獲得更多配置屬性的信息;
    應(yīng)用自動(dòng)發(fā)布

    如果使用標(biāo)準(zhǔn)的Host實(shí)現(xiàn),當(dāng)Catalina第一次啟動(dòng)時(shí),如果deployOnStartup屬性為true,tomcat會(huì)自動(dòng)采取如下的步驟:

    • 假定$CATALINA_HOME/conf/[engine_name]/[host_name]目錄中的任何XML文件都包含一個(gè)Context元素(以及它的相關(guān)的子元素),通常情況下,這個(gè)<Context>的docBase屬性指向一個(gè)web應(yīng)用目錄的絕對(duì)路徑,或者是WAR文件的絕對(duì)路徑。
    • 如果WAR文件對(duì)應(yīng)的目錄不存在,則這個(gè)WAR文件會(huì)被自動(dòng)展開(kāi),除非unpackWARs屬性設(shè)為false。在重新發(fā)布更新后的WAR文件時(shí),重新啟動(dòng)Tomcat之前一定要?jiǎng)h除展開(kāi)后的目錄,這樣更新后的WAR文件才會(huì)被重新展開(kāi)(如果使能了auto deployer,它會(huì)自動(dòng)完成這項(xiàng)工作)
    • application base目錄下的任何子目錄,如果包含/WEB-INF/web.xml文件,Tomcat認(rèn)為這個(gè)一個(gè)展開(kāi)后的web應(yīng)用,會(huì)為這個(gè)目錄自動(dòng)產(chǎn)生一個(gè)Context元素,即使這個(gè)目錄沒(méi)有在conf/server.xml文件中出現(xiàn)。產(chǎn)生的Context會(huì)使用DefaultContext中的屬性來(lái)配置。自動(dòng)產(chǎn)生的Context的context路徑是“/”后面跟上目錄名,除非目錄名是ROOT,這種情況下context路徑是空字符串(“”);

    除了啟動(dòng)時(shí)候的自動(dòng)發(fā)布以外,在Tomcat運(yùn)行的時(shí)候,當(dāng)新的XML 配置文件,WAR文件或者子目錄(包含新的web應(yīng)用)放到appBase目錄下,或者當(dāng)XML配置文件放到$CATALINA_HOME/conf/[engine_name]/[host_name]目錄)的時(shí)候,該web應(yīng)用被自動(dòng)發(fā)布。auto deployer也負(fù)責(zé)跟蹤web應(yīng)用的如下變化:

    • 如果更新了WEB-INF/web.xml文件,會(huì)觸發(fā)web應(yīng)用的重載;
    • 如果WAR文件被更新,并且WAR文件已經(jīng)展開(kāi),首先刪除展開(kāi)的web應(yīng)用,然后發(fā)布更新的WAR文件;
    • 如果XML配置文件被更新,首先刪除該應(yīng)用(但是不刪除任何展開(kāi)以后的目錄),然后發(fā)布相關(guān)的web應(yīng)用
    主機(jī)名別名

    在許多服務(wù)器環(huán)境中,多個(gè)網(wǎng)絡(luò)名稱(chēng)可能指向同一個(gè)IP地址(比如,www.mycompany.com和company.com都指向192.168.1.1)。正常情況下,每個(gè)網(wǎng)絡(luò)名稱(chēng)應(yīng)該在conf/server.xml中對(duì)應(yīng)一個(gè)Host元素,每個(gè)Host元素有自己的一套web應(yīng)用。

    但是,有些情況下,可能希望兩個(gè)或者更多網(wǎng)絡(luò)名稱(chēng)解析到同一個(gè)虛擬主機(jī)上,運(yùn)行相同的一套web應(yīng)用。這種情況的典型用途是公司網(wǎng)站。用戶(hù)可以使用www.mycompany.com和company.com訪問(wèn)同樣的內(nèi)容和應(yīng)用。

    通過(guò)在Host元素中嵌套一個(gè)或者多個(gè)Alias元素,可以完成上述功能。

     

    <Host name="www.mycompany.com" ...>
      ...
      <Alias>mycompany.com</Alias>
      ...
    </Host>
    

    為了使這個(gè)策略生效,所有的網(wǎng)絡(luò)名稱(chēng)必須在DNS服務(wù)器登記,指向運(yùn)行Catalina實(shí)例的同一臺(tái)計(jì)算機(jī)。

     

    生命期Listeners

    如果一個(gè)Java對(duì)象需要知道Context什么時(shí)候啟動(dòng),什么時(shí)候停止,可以在這個(gè)對(duì)象中嵌套一個(gè)Listener元素。該Listener元素必須實(shí)現(xiàn)了org.apache.catalina.LifecycleListener接口,在發(fā)生對(duì)應(yīng)的生命期事件的時(shí)候,通知該Listener。可以按照如下的格式配置這樣的Listener:

    <Host name="localhost" ...>
      ...
      <Listener className="com.mycompany.mypackage.MyListener" ... >
      ...
    </Host>
    
    注意,一個(gè)listener可以具有任意多的附加屬性。屬性名與JavaBean的屬性名相對(duì)應(yīng),使用標(biāo)準(zhǔn)的屬性命名方法。
    請(qǐng)求過(guò)濾器
    對(duì)每個(gè)發(fā)送到Engine,Host或者Context的請(qǐng)求,可以要求Catalina檢查IP地址或主機(jī)名稱(chēng)。Catalina使用一系列配置好的“接受”或者“拒絕”過(guò)濾器對(duì)客戶(hù)端的地址或者主機(jī)名進(jìn)行檢查,過(guò)濾器是按照正則表達(dá)式語(yǔ)法定義的,由Jakarta Regexp正則表達(dá)式庫(kù)支持。不被接受的請(qǐng)求會(huì)返回一個(gè)HTTP“Forbidden”錯(cuò)誤。下面是過(guò)濾器的定義。
    <Host name="localhost" ...>
      ...
      <Valve className="org.apache.catalina.valves.RemoteHostValve"
             allow="*.mycompany.com,www.yourcompany.com"/>
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             deny="192.168.1.*"/>
      ...
    </Host>
    

     

    如果想知道過(guò)濾器支持的更多選項(xiàng)的信息,參考Remote Address Filter和Remote Host Filter

    單次登錄(Single Sign On

    在許多環(huán)境尤其是門(mén)戶(hù)環(huán)境下,對(duì)特定虛擬主機(jī)上的一套web應(yīng)用,只希望對(duì)用戶(hù)進(jìn)行一次認(rèn)證。這可以在Host元素中嵌套如下的元素完成:

    <Host name="localhost" ...>
      ...
      <Valve className="org.apache.catalina.authenticator.SingleSignOn"
             debug="0"/>
      ...
    </Host>
    

    單次登錄根據(jù)如下規(guī)則運(yùn)作:

    • 這個(gè)虛擬主機(jī)的所有web應(yīng)用必須共享同一個(gè)Realm。在實(shí)際情況中,這意味著你可以在這個(gè)Host元素中嵌套R(shí)ealm元素(或者是Engine元素),但不能在web應(yīng)用對(duì)應(yīng)的Context中嵌套R(shí)ealm元素
    • 如果用戶(hù)只訪問(wèn)這個(gè)虛擬主機(jī)上任意web應(yīng)用的沒(méi)有加保護(hù)的資源,他們不會(huì)被要求認(rèn)證;
    • 一旦用戶(hù)訪問(wèn)這個(gè)虛擬主機(jī)下的任意web應(yīng)用的保護(hù)資源,用戶(hù)會(huì)被要求認(rèn)證。使用正在訪問(wèn)的web應(yīng)用的login方法;
    • 一旦認(rèn)證通過(guò),與這個(gè)用戶(hù)相關(guān)聯(lián)的角色決定了它對(duì)所有的web應(yīng)用的訪問(wèn)控制權(quán)限;而不需要對(duì)每個(gè)應(yīng)用單獨(dú)認(rèn)證;
    • 一旦用戶(hù)從某個(gè)web應(yīng)用注銷(xiāo)(比如,如果使用了基于表單的login,對(duì)應(yīng)的session過(guò)期或者無(wú)效),用戶(hù)在所有web應(yīng)用的session都會(huì)失效;任何后續(xù)的對(duì)保護(hù)資源的訪問(wèn)會(huì)要求對(duì)用戶(hù)重新認(rèn)證;
    • 單次登錄特征使用HTTP cookies傳輸令牌,將每個(gè)請(qǐng)求和用戶(hù)身份聯(lián)系起來(lái),因此客戶(hù)端必須支持cookies;
    用戶(hù)Web應(yīng)用

    許多web服務(wù)器會(huì)自動(dòng)將以"~"和用戶(hù)名開(kāi)始的URI映射到用戶(hù)主目錄下的某個(gè)目錄(通常為public_html)。在Catalina中,通過(guò)使用特殊的Listener元素,可以完成上述功能

    在利用/etc/password來(lái)標(biāo)識(shí)有效用戶(hù)的Unix系統(tǒng)下使用如下配置:

    <Host name="localhost" ...>
      ...
      <Listener className="org.apache.catalina.startup.UserConfig"
                directoryName="public_html"
                userClass="org.apache.catalina.startup.PasswdUserDatabase"/>
      ...
    </Host>
    

    在不使用/etc/password的服務(wù)器上,可以要求Catalina將指定的基準(zhǔn)目錄下的所有目錄(比如c:\homes)看成是用戶(hù)主目錄:

    <Host name="localhost" ...>
      ...
      <Listener className="org.apache.catalina.startup.UserConfig"
                directoryName="public_html"
                homeBase=c:\Homes"
                userClass="org.apache.catalina.startup.HomesUserDatabase"/>
      ...
    </Host>
    

    如果某個(gè)名為craigmcc的用戶(hù)的主目錄已經(jīng)設(shè)置好,通過(guò)使用如下URL,可以瀏覽它的內(nèi)容:

    http://www.mycompany.com:8080/~craigmcc
    

     

    使用這個(gè)特征需要注意如下幾個(gè)問(wèn)題:

    • 每個(gè)用戶(hù)web應(yīng)用會(huì)使用該Host的DefaultContext元素定義的特征發(fā)布;
    • 包含多個(gè)Listener元素的實(shí)例也是有效的。但是,這只在你希望配置多個(gè)homeBase目錄情況下才有意義;
    • 執(zhí)行Catalina的用戶(hù)名對(duì)每個(gè)用戶(hù)的web應(yīng)用目錄以及它的所有內(nèi)容必須有讀的權(quán)限;
    posted on 2006-02-16 17:05 java之海 閱讀(3044) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产乱子精品免费视观看片| 亚洲午夜福利AV一区二区无码| 亚洲av午夜精品一区二区三区| 亚洲永久中文字幕在线| 男女猛烈无遮掩视频免费软件| 麻豆最新国产剧情AV原创免费 | 99在线观看免费视频| 亚洲福利在线播放| 久久精品视频免费播放| 国产AV无码专区亚洲AV男同 | 一二三四在线观看免费高清中文在线观看 | 亚洲日本va中文字幕久久| 免费无码黄十八禁网站在线观看| 久久久久亚洲精品日久生情 | 浮力影院亚洲国产第一页| 免费毛片毛片网址| 亚洲男女一区二区三区| 一本久久综合亚洲鲁鲁五月天| 久久精品熟女亚洲av麻豆| 午夜一级免费视频| 亚洲国产视频网站| 100000免费啪啪18免进| 国产精品永久免费视频| 国产精品入口麻豆免费观看| 一级女性全黄久久生活片免费| 久久久精品国产亚洲成人满18免费网站| 51视频精品全部免费最新| 亚洲国产精品久久网午夜| 亚洲色婷婷综合开心网| 久久福利青草精品资源站免费| 亚洲成色WWW久久网站| 国产成人高清精品免费软件| 美国免费高清一级毛片| 国产偷国产偷亚洲清高动态图| 久久久国产精品福利免费| 国产亚洲视频在线观看网址 | 久久国产精品免费一区| 欧洲亚洲国产精华液| 国产亚洲一区二区三区在线不卡| 成人免费无码视频在线网站| 114级毛片免费观看|