Tomcat 配置之 server.xml

本文將介紹Tomcat中主要的配置文件server.xml的一些標簽及其含義

Tomcat隸屬于Apache基金會咙俩,是開源的輕量級Web應用服務器,使用非常廣泛苔悦。server.xml是Tomcat中最重要的配置文件寺谤,server.xml的每一個元素都對應了Tomcat中的一個組件;通過對xml文件中元素的配置抖部,可以實現(xiàn)對Tomcat中各個組件的控制。因此议惰,學習server.xml文件的配置慎颗,對于了解和使用Tomcat至關重要。

安裝好tomcat后言询,在conf目錄下的server.xml默認會有一些配置


<Server port="8005" shutdown="SHUTDOWN">
    <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
    <Listener SSLEngine="on"
        className="org.apache.catalina.core.AprLifecycleListener" />
    <Listener className="org.apache.catalina.core.JasperListener" />
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

    <GlobalNamingResources>
        <Resource auth="Container" description="User database that can be updated and saved"
            factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase"
            pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase" />
    </GlobalNamingResources>

    <Service name="Catalina">

        <Connector URIEncoding="UTF-8" connectionTimeout="20000"
            port="80" protocol="HTTP/1.1" redirectPort="8443" />
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

        <Engine defaultHost="localhost" name="Catalina">

            <Realm className="org.apache.catalina.realm.LockOutRealm">
                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                    resourceName="UserDatabase" />
            </Realm>

            <Host appBase="webapps" autoDeploy="true" name="localhost"
                unpackWARs="true">

                <Valve className="org.apache.catalina.valves.AccessLogValve"
                    directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log."
                    suffix=".txt" />

            </Host>
        </Engine>
    </Service>

以上的就是我們要逐一介紹的節(jié)點

Server節(jié)點

描述:Server代表一個Tomcat實例(一個JVM)所以server.xml中唯一一個最外層的元素(唯一)

功能:提供接口讓客戶端能訪問Server包含的Service俯萎,維護各個Service的生命周期等。

屬性:

  • port: 指定端口監(jiān)聽關閉tomcat的請求倍试,設為-1可以禁掉該端口讯屈。
  • shutdown: 關閉tomcat的發(fā)送的字符串

Service

描述:一個Server節(jié)點可以包含多個Service節(jié)點。不同的Service所監(jiān)聽的端口必須是不能重復的县习。

功能:一個Service可以理解為Engine和Connector的容器涮母。每個Connector通過一個特定的端口和協(xié)議接收入站請求交將其轉(zhuǎn)發(fā)至關聯(lián)的Engine進行處理谆趾。

屬性:

  • name:指定service 的名字
    會默認生成一個名為Catalina的Service

Service包含Connector和Engine兩個節(jié)點。

Connector

描述:一個Service可以包含多個Connector叛本,Connector有多種類型

  • HTTP連接器
  • SSL連接器
  • AJP 1.3連接器
  • proxy連接器
    他用來表示客戶端和service之間的連接沪蓬。

HTTP connector 示例:


<Connector port="8080" protocol="HTTP/1.1"
      maxThreads="150" connectionTimeout="20000"
      redirectPort="8443" URIEncoding="UTF-8"/>

SSL connector 示例:


<Connector port="8443"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" acceptCount="100" debug="0" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS" />

AJP connector 示例:


<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

在默認的Service中包含兩個Connector:
分別是


<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

此時Tomcat監(jiān)聽的HTTP請求,協(xié)議是HTTP/1.1来候,端口是8080跷叉,轉(zhuǎn)發(fā)HTTPS請求到8443端口。

配置<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>客戶端就可以通過8009端口使用AJP協(xié)議訪問tomcat营搅。

AJP協(xié)議:
AJP協(xié)議負責和其他http服務器建立連接云挟,把tomcat服務器和其他http服務器連接時,就需要這個转质,之所以使用Tomcat和其他服務器集成园欣,是因為Tomcat可以用作Servlet/JSP容器,但是對靜態(tài)資源的處理速度較慢休蟹,不如Apache和IIS等HTTP服務器沸枯;因此常常將Tomcat與Apache等集成,前者作Servlet容器赂弓,后者處理靜態(tài)資源绑榴,而AJP協(xié)議便負責Tomcat和Apache的連接

功能:接收連接請求,創(chuàng)建Request和Response對象用于和請求端交換數(shù)據(jù)盈魁,然后分配線程讓Engine處理請求并把Request和Response對象傳遞給Engine

主要屬性屬性:

  • port 指定服務器要創(chuàng)建的端口號翔怎,并在改端口監(jiān)聽客戶端的請求。
  • minProcessors 服務啟動時創(chuàng)建處理請求的線程數(shù)目备埃。
  • maxProcessors 最大可創(chuàng)建的處理請求線程數(shù)目姓惑。
  • enableLookups true:進行DNS查詢得到遠程客戶端的實際主機名 false不進行查詢。s
  • redirectPort 如果某連接器支持的協(xié)議是HTTP按脚,當接收客戶端發(fā)來的HTTPS請求時,則轉(zhuǎn)發(fā)至此屬性定義的端口
  • connectionTimeout 等待客戶端發(fā)送請求的超時時間敦冬,單位為毫秒辅搬,默認為60000,即1分鐘脖旱;

其他屬性

Engine

描述:一個Service 對應一個Engine堪遂。

功能:一個Engine?從一個或者多個Connector中接收請求并處理,并將完成的響應返回給Connector萌庆。

主要屬性:

  • defaultHost 默認host的名字溶褪。
  • name 用于日志和錯誤信息,在Server中唯一
  • startStopThreads 該Engine啟動子Host默認開啟的線程

Host

描述:一個Engine對應多個Host 践险,每個?Host代表Engine的一個虛擬主機猿妈。Host組件至少有一個吹菱,且其中一個的name必須與Engine組件的defaultHost屬性相匹配。

功能:運用來運行多個web應用彭则,負責?Web應用的生命周期鳍刷。

tip: 虛擬主機是一種在一個web服務器上服務多個域名的機制,對每個域名而言俯抖,都好象獨享了整個主機输瓜。實際上,大多數(shù)的小型商務網(wǎng)站都是采用虛擬主機實現(xiàn)的芬萍,這主要是因為虛擬主機能直接連接到Internet并提供相應的帶寬尤揣,以保障合理的訪問響應速度,另外虛擬主機還能提供一個穩(wěn)定的固定IP柬祠。

主要屬性:

  • name 指定虛擬主機的主機名
  • unpackWARs 是否將war文件解壓北戏,true為運行解壓war文件后燈文件夾,false直接運行war文件瓶盛。
  • autoDeploy 是否自動部署
  • appBase ?此虛擬Host的WebApp存放路徑最欠。

若只配置appBase,不配Context 的docBase(appBase和docBase二選一就可以了)惩猫,則appBase的每個文件夾里都代表一個應用.這個目錄下面的.war文件將被自動解壓縮并部署為應用芝硬。

Context

描述:一個Host可以對應多個Context,Context表示在特定的虛擬主機?上運行的一個Web?應用轧房。
功能:

主要屬性:

  • path 指定Web應用的URL入口 (多指項目名)
  • docBase 指定Web應用的文件路徑拌阴,可以是絕對路徑,也可以是相對路徑(相對該Context所在的Host的appBase屬性值)
  • reloadable 若此屬性為true奶镶,tomcat在運行狀態(tài)下回監(jiān)視WEB-INF/classes和WEB-INF/lib目錄下class的文件改動迟赃,若有文件更新服務器會重載Web應用

其他屬性

例子:在默認Host標簽中添加Context

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
     <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                       prefix="localhost_access_log." suffix=".txt"
                       pattern="%h %l %u %t "%r" %s %b"/>
    <Context path="/test" reloadable="true" docBase="/Users/WLW/tomcat/webapps2">
    
    </Context>
</Host>

/Users/WLW/tomcat/webapps2下創(chuàng)建test.html。

訪問http://localhost:8080/test/test.html

參考

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厂镇,一起剝皮案震驚了整個濱河市纤壁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捺信,老刑警劉巖酌媒,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異迄靠,居然都是意外死亡秒咨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門掌挚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雨席,“玉大人,你說我怎么就攤上這事吠式《咐澹” “怎么了抽米?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長雏亚。 經(jīng)常有香客問我缨硝,道長,這世上最難降的妖魔是什么罢低? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任查辩,我火速辦了婚禮,結(jié)果婚禮上网持,老公的妹妹穿的比我還像新娘宜岛。我一直安慰自己,他們只是感情好功舀,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布萍倡。 她就那樣靜靜地躺著,像睡著了一般辟汰。 火紅的嫁衣襯著肌膚如雪列敲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天帖汞,我揣著相機與錄音戴而,去河邊找鬼。 笑死翩蘸,一個胖子當著我的面吹牛所意,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播催首,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼扶踊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了郎任?” 一聲冷哼從身側(cè)響起秧耗,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舶治,沒想到半個月后绣版,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡歼疮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了诈唬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片韩脏。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖铸磅,靈堂內(nèi)的尸體忽然破棺而出赡矢,到底是詐尸還是另有隱情杭朱,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布吹散,位于F島的核電站弧械,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏空民。R本人自食惡果不足惜刃唐,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望界轩。 院中可真熱鬧画饥,春花似錦、人聲如沸浊猾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葫慎。三九已至衔彻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間偷办,已是汗流浹背艰额。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爽篷,地道東北人悴晰。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像逐工,于是被迫代替她去往敵國和親铡溪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容