tomcat7中配置文件server.xml的示例分析

這篇文章將為大家詳細(xì)講解有關(guān)tomcat7中配置文件server.xml的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、海南網(wǎng)站維護(hù)、網(wǎng)站推廣。

這里對tomcat7的server.xml文件進(jìn)行解釋一下,方便在分析啟動(dòng)源碼的時(shí)候理解Digester做的事情。

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
 <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
 <Listener className="org.apache.catalina.security.SecurityListener" />
 <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
 <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 name="UserDatabase" auth="Container"
       type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
       factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
       pathname="conf/tomcat-users.xml" />
 </GlobalNamingResources>

 <Service name="Catalina">
  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
    maxThreads="150" minSpareThreads="4"/>

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

  <Connector executor="tomcatThreadPool"
        port="8080" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443" />

  <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
        maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
        clientAuth="false" sslProtocol="TLS" />

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

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

   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

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

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

    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />

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

Server

tomcat中Server代表一個(gè)tomcat實(shí)例,所以只會(huì)存在一個(gè)Server,而在配置文件中也是作為頂級元素出現(xiàn),代碼如下:

<Server port="8005" shutdown="SHUTDOWN">
。。。
</Server>
  1. port,監(jiān)聽shutdown命令的端口,-1表示禁用shutdown命令。

  2. shutdown,關(guān)閉tomcat的指令。

Listener

監(jiān)聽器,用來監(jiān)聽某些事件的發(fā)生。

復(fù)制代碼 代碼如下:


<Listener className="org.apache.catalina.startup.VersionLoggerListener" />

VersionLoggerListener,啟動(dòng)時(shí)對tomcat,java,操作系統(tǒng)信息打印日志。

復(fù)制代碼 代碼如下:


<Listener className="org.apache.catalina.security.SecurityListener" />

SecurityListener,啟動(dòng)tomcat時(shí),做一些安全檢查。

復(fù)制代碼 代碼如下:


<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

AprLifecycleListener,用來監(jiān)聽Apache服務(wù)器相關(guān)的。

復(fù)制代碼 代碼如下:


<Listener className="org.apache.catalina.core.JasperListener" />

JasperListener,Jasper 2 JSP 引擎,主要負(fù)責(zé)對更新之后的jsp進(jìn)行重新編譯。

復(fù)制代碼 代碼如下:


<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />

JreMemoryLeakPreventionListener,防止內(nèi)存溢出的監(jiān)聽器。

復(fù)制代碼 代碼如下:


<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

GlobalResourcesLifecycleListener,初始化定義在元素GlobalNamingResources下的全局JNDI資源

復(fù)制代碼 代碼如下:


<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

ThreadLocalLeakPreventionListener,防止ThreadLocal溢出監(jiān)聽器。

GlobalNamingResources

GlobalNamingResources定義Server的全局JNDI資源。可以為所有的引擎應(yīng)用程序引用。

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

配置文件中定義了一個(gè)JNDI,名為UserDatabase,通過conf/tomcat-users.xml的內(nèi)容,來得到一個(gè)用于授權(quán)用戶的數(shù)據(jù)庫,是一個(gè)內(nèi)存數(shù)據(jù)庫。

Service

<Service name="Catalina">
。。。
</Service>

Server下面可以有多個(gè)Service,Service下面有多個(gè)Connector和一個(gè)Engine。這里默認(rèn)的Service名字為Catalina,下面有兩個(gè)Connector:Http和AJP。

  1. name,Service顯示的名稱,名字必須唯一。

Connector

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

上面是用來處理http請求的Connector。

  1. port,端口號8080。

  2. protocol,協(xié)議,http協(xié)議

  3. connectionTimeout,響應(yīng)的最大等待時(shí)間,20秒

  4. redirectPort,ssl請求會(huì)重定向到8443端口

<Connector executor="tomcatThreadPool"
      port="8080" protocol="HTTP/1.1"
      connectionTimeout="20000"
      redirectPort="8443" />

上面是使用線程池,處理http請求。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
      maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
      clientAuth="false" sslProtocol="TLS" />

上面處理ssl請求,端口是8443。

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

上面處理AJP請求,可以將tomcat和apache的http服務(wù)器一起運(yùn)行。

Engine

Engine是容器,一個(gè)Service中只包含一個(gè)Engine:

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

Engine下面可以包含一個(gè)多或者多個(gè)Host。Engine從http請求的頭信息中的主機(jī)名或者ip映射到真確的主機(jī)上。

  1. name,Engine的名字,需要唯一。

  2. defaultHost,默認(rèn)主機(jī)名

Cluster

集群相關(guān)的配置。tomcat支持服務(wù)器集群,可以復(fù)制整個(gè)集群的回話和上下文屬性,也可以部署一個(gè)war包到所有的集群上。

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

Realm

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

Realm是一個(gè)包含user、password、role的數(shù)據(jù)庫,Realm可以定義在任何容器中。這里通過外部資源UserDatabase進(jìn)行認(rèn)證。

Host

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

 <Valve className="org.apache.catalina.authenticator.SingleSignOn" />

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

Host虛擬主機(jī),定義在Engine下面,一個(gè)Engine下面可以有多個(gè)Host,在一個(gè)Host下面可以有多個(gè)Context。

  1. name,虛擬主機(jī)的網(wǎng)絡(luò)名稱,必須有一個(gè)host的名字和Engine的defaulHost一樣。

  2. appBase,虛擬主機(jī)應(yīng)用的根目錄,默認(rèn)是webapps。

  3. unpackWARs,在webapps目錄下的war文件是否應(yīng)該解壓。

  4. autoDeploy,值為true時(shí),tomcat會(huì)定時(shí)檢查appBase等目錄,對新的web應(yīng)用和Context描述文件進(jìn)行部署。

Value

<Valve className="org.apache.catalina.authenticator.SingleSignOn" />

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

Value在這里是閥門的意思,可以攔截http請求,可以定義在任何容器中。

SingleSignOn 是單點(diǎn)登錄,AccessLogValve是訪問日志的記錄。

關(guān)于“tomcat7中配置文件server.xml的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

當(dāng)前文章:tomcat7中配置文件server.xml的示例分析
本文路徑:http://www.muchs.cn/article16/geeggg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、定制開發(fā)、域名注冊外貿(mào)建站、ChatGPT電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化