日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

tomcat的server.xml详解

發(fā)布時間:2025/7/25 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tomcat的server.xml详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Tomcat服務(wù)器是由一系列可配置的組件構(gòu)成,其核心組件是Catalina?? Servlet容器,它是所有其他Tomcat組件的頂層容器。Tomcat的組件可以在<CATALINA_HOME>/conf/server.xml文件中進(jìn)行配置,每個Tomcat的組件在server.xml文件中對應(yīng)一種配置元素.一下代碼以XML的形式展示了各種Tomcat組件之間的關(guān)系:

???????<Server>元素
??????? 代表了整個Catalina?? Servlet容器,它是Tomcat實例的頂層元素.可包含一個或多個<Service>元素.

????????<Service>元素---不同端口部署不同應(yīng)用則復(fù)制多個Service
??????? 包含一個<Engine>元素,以及一個或多個<Connector>元素,這些<Connector>元素共享同一個<Engine>元素.

????????<Connector>元素
??????? 代表和客戶程序?qū)嶋H交互的組件,他負(fù)責(zé)接收客戶請求,以及向客戶返回響應(yīng)結(jié)果.

????????<Engine>元素---虛擬主機
??????? 每個<Service>元素只能包含一個<Engine>元素.?? <Engine>元素處理在同一個<Service>中所有<Connector>元素接收到的客戶請求.

????????<Host>元素
??????? 一個<Engine>元素中可以包含多個<Host>元素.每個<Host>元素定義了一個虛擬主機,它可以包含一個或多個Web應(yīng)用.

????????<Context>元素---同一端口部署多個應(yīng)用則復(fù)制多個Context
??????? 每個<Context>元素代表了運行虛擬主機上的但個Web應(yīng)用.一個<Host>元素中可以包含多個<Context>元素.

Tomcat服務(wù)器是由一系列可配置的組件構(gòu)成,Tomcat的組件可以在<CATALINA_HOME>\conf\server.xml文件中進(jìn)行配置,每個Tomcat組件和server.xml文件中的一種配置元素對應(yīng).下面就一些常用的元素做了介紹.關(guān)于server.xml的更多信息,可以參考Tomcat的文檔:

????????? <CATALINA_HOME>/webapps/tomcat-docs/config/index.html

?

關(guān)于用tomcat部署多個應(yīng)用的3種方法:

1.配置文件中使用多個Context元素。這種配置好處是這些應(yīng)用公用Connector,也就是說訪問端口是一樣的,這樣就可以都部署在80下了。

這樣有一個要求,就是應(yīng)用程序在設(shè)計的時候就支持Context,一些鏈接前面都先加上動態(tài)的應(yīng)用名,而不是使用“/”這樣的絕對路徑。Context元素的path一定不要以“/”結(jié)尾,可以是""或者"/WEB1"這樣的。

?

2.配置文件中使用多個Service元素。這種配置可以解決應(yīng)用程序不支持動態(tài)應(yīng)用名的情況,使用不同端口訪問不同頁面。

不過這樣有時候也不是很順利,由于一個tomcat的jvm對一個jni類只允許load一次,你多個應(yīng)用如果同時load了某個jni的類則會部署失敗。這種情況可以把這個類從項目里拿出來放到tomcat安裝目錄的lib下作為公用的。不過還是有點麻煩哈~

?

3.部署多個tomcat。這個一般是做集群的時候用的,不過你也可以用來部署多應(yīng)用,只要調(diào)整下端口不沖突就行。

?

下面是server.xml文件的樣例:

1.???? 配置Server元素
??????? <Server>元素代表了整個Catalina???? Servler容器,它是Tomcat實例的頂層元素,由org.apache.catalina.Server接口來定義.<Server>元素中可以包含一個或者多個<Service>元素,但<Server>元素不能作為任何其他元素的子元素.范例代碼中定義的<Server>元素如下:
? ? ??? ?<Server???? port="8005"???? shutdown="SHUTDOWN"???? debug="0">
????????? className ? ? ?:指定實現(xiàn)org.apache.catalina.Server接口的類,默認(rèn)值為org.apache.catalina.core.StandardServer.
????????? port???????????????? :指定Tomcat服務(wù)器監(jiān)聽shutdown命令的端口.終止Tomcat服務(wù)運行時,必須在Tomcat服務(wù)器所在的機器上發(fā)出Shutdown命令.該屬性是必須設(shè)定的.
????????? shutdown ? ? ? :指定終止Tomcat服務(wù)器運行時,發(fā)給Tomcat服務(wù)器的shutdown監(jiān)聽端口的字符串.該屬性是必須設(shè)定的.


2.???? 配置Service元素
????????? <Service>元素由org.apache.catalina.Service接口定義,它包含一個<Engine>元素,以及一個或多個<Connector>元素,這些<Connector>元素共享一個<Engine>元素.???? 例如,在范例文件中配置了兩個<Service>元素
??????????<Service???? name="Catalina">
????????? className?????? :指定實現(xiàn)org.apache.catalina.Service接口的類,默認(rèn)值為org.apache.catalina.core.StandardService.
????????? name ? ? ? ? ? ? ? :定義Service的名字.

3.???? 配置Engine元素
????????? <Engine>元素由org.apahe.catalina.Engine接口定義.???? 每個<Service>元素只能包括一個<Engine>元素.???? <Engine>元素處理在同一個<Service>中所有<Connector>元素接收到的客戶請求.???? 例如,在范例server.xml文件中配置了一下的<Engine>元素:
??????????<Engine???? name="Catalina"???? defaultHost="localhost"???? debug="0">??
????????? className?????? :指定實現(xiàn)org.apache.catalina.Engine接口的類,默認(rèn)值為org.apache.catalina.core.StandardEngine.
????????? name ? ? ? ? ? ? ? :定義Engine的名字.

????????? 在<Engine>元素中可以包含如下的子元素:
????????????????? <Logger>
????????????????? <Realm>
????????????????? <Valve>
????????????????? <Host>

4.???? 配置Host元素

????????? <Host>元素由org.apache.catalina.Host接口定義.一個<Engine>元素可以包含多個<Host>元素.每個<Host>元素定義了一個虛擬主機,它可以包含一個或多個Web應(yīng)用.???? 例如,在樣例server.xml中配置了以下<Host>元素:
? ? ? ? ??<Host???? name="localhost"???? debug="0"???? appBase="webapps" unpackWARs="true"???? autoDeploy="true">??
????????? className?????????? :指定實現(xiàn)org.apache.catalina.Host接口的類,默認(rèn)值為org.apache.catalina.core.StandardHost.
????????? appBase?????????????? :指定虛擬主機的目錄,可以指定絕對目錄,也可以指定相對于<CATALINA_HOME>的相對目錄.???? 如果此項沒有設(shè)定,默認(rèn)值為<CATALINA_HOME>/webapps.
????????? unpackWARs???????? :如果此項設(shè)為true,表示將把Web應(yīng)用的WAR文件先展開為開放目錄結(jié)構(gòu)后再運行.如果設(shè)為false,將直接運行WAR文件.
????????? autoDeploy???????? :如果此項設(shè)為true,表示當(dāng)Tomcat服務(wù)器處于運行狀態(tài)時,能夠監(jiān)測appBase下的文件,如果有新的Web應(yīng)用加入進(jìn)來,會自動發(fā)布這個Web應(yīng)用.
????????? alias?????????????????? :指定虛擬主機的別名,可以指定多個別名.
????????? deployOnStartup???? :如果此項設(shè)為true,表示Tomcat服務(wù)器啟動時會自動發(fā)布appBase目錄下的所有Web應(yīng)用,如果Web應(yīng)用在server.xml中沒有相應(yīng)的<Context>元素,將采用Tomcat默認(rèn)的Context.???? deployOnStartup的默認(rèn)值為true.
????????? name???????????????????? :定義虛擬主機的名字.}

????????? 在<Host>元素中可以包含如下的子元素:
????????????????? <Logger>
????????????????? <Realm>
????????????????? <Valve>
????????????????? <Context>

5.???? 配置Context元素
????????? <Context>元素由org.apache.catalina.Context接口定義.???? <Context>元素是使用最頻繁的元素.???? 每個<Context>元素代表了運行在虛擬主機上的單個Web應(yīng)用.???? 一個<Host>元素中可以包含多個<Context>元素.???? 例如,???? 在樣例server.xml文件中配置了以下<Context>元素:
   <Context???? path="/sample"???? docBase="sample"???? debug="0"???? reloadable="true"> ??? ?
????????? className???????? :指定實現(xiàn)org.apache.catalina.Context接口的類,默認(rèn)值為org.apache.catalina.core.StandardContext.
????????? path?????????????????? :指定訪問該Web應(yīng)用的URL入口.
????????? docBase???????????? :指定Web應(yīng)用的文件路徑.可以給定絕對路徑,也可以給定相對于Host的appBase屬性的相對路徑.???? 如果Web應(yīng)用采用開放目錄結(jié)構(gòu),那就指定Web應(yīng)用的根目錄;如果Web應(yīng)用是個WAR文件,那就指定WAR文件的路徑.
????????? reloadable?????? :如果這個屬性設(shè)為true,Tomcat服務(wù)器在運行狀態(tài)下會監(jiān)視在WEB-INF/class和WEB-INF/lib目錄下CLASS文件的改動.如果檢測到有calss文件被更新,服務(wù)器會自動重新加載Web應(yīng)用.
????????? cookies???????????? :指定是否通過Cookie來支持Session,默認(rèn)為true.
????????? useNaming???????? :指定是否支持JNDI,默認(rèn)為true.

????????? 在<Context>元素中可以包含如下的子元素:
????????????????? <Logger>
????????????????? <Realm>
????????????????? <Valve>
????????????????? <Resource>
????????????????? <ResourceParams>

6.???? 配置Connector元素
????????? <Connector>元素由org.apache.catalina.Connector接口定義.<Connector>元素代表與客戶程序?qū)嶋H交互的組件,它負(fù)責(zé)接收客戶的請求,以及向客戶返回響應(yīng)結(jié)果.例如,???? 在樣例server.xml文件中配置了兩個<Connector>元素:
??????????<Connector?prot="8009" enableLookups="false"???? redirectPort"8443"???? debug="0" protocol="AJP/1.3"/>????????????

????????? 第一個<Connector>元素定義了一個HTTP???? Connector,它通過8080端口接收HTTP請求;
????????? 第二個<Connector>元素定義了一個JK???? Connector,它通過8009端口接收由其他HTTP服務(wù)器(如Apache服務(wù)器)轉(zhuǎn)發(fā)過來的客戶請求.

????????? 所有的<Connector>元素都具有一些共同的屬性,這些屬性如下:???? <Connector?????? <Connector???? port="8080"
??????????????????????????????????? maxThreads="150"???? minSpareThreads="25"???? maxSpareThreads="75"
??????????????????????????????????? enableLookups="false"???? redirectPort="8443"???? acceptCount="100"
??????????????????????????????????? debug="0"???? connectionTimeout="20000"??
??????????????????????????????????? disableUploadTimeout="true"???? />??


????????? className?????????????? :指定實現(xiàn)org.apache.catalina.Connector???? 接口的類,默認(rèn)值為org.apache.catalina.core.StandardConnector.
????????? enableLookups?????? :如果設(shè)為true,表示支持域名解析,可以把IP地址解析為主機名.Web應(yīng)用調(diào)用request.getRemostHost方法將返回客戶的主機名.該屬性默認(rèn)值為true.
????????? redirectPort???????? :指定轉(zhuǎn)發(fā)端口.如果當(dāng)前端口只支持non-SSL請求,在需要安全通信的場合,將把客戶請求轉(zhuǎn)發(fā)到基于SSL的redirectPort的端口.

????????? HttpConnector的屬性描述如下:
--------------------------------------------------------------
????????? calssName?????????????? :指定實現(xiàn)org.apache.catalina.Connector接口的類,默認(rèn)值為org.apache.coyote.tomcat5.CoyoteConnector.
????????? enableLookups?????? :同上.
????????? redirectPort???????? :同上.
????????? prot???????????????????????? :設(shè)定TCP/IP斷口號,默認(rèn)為8080.
????????? address?????????????????? :如果服務(wù)器有兩個以上IP地址,該屬性可以設(shè)定端口監(jiān)聽的IP地址,默認(rèn)情況下,端口會監(jiān)聽服務(wù)器上所有IP地址.
????????? bufferSize???????????? :設(shè)定由端口創(chuàng)建的輸入流的緩存大小,默認(rèn)值為2048byte.
????????? protocol???????????????? :設(shè)定HTTP協(xié)議,默認(rèn)值為HTTP/1.1.
????????? maxThreads???????????? :設(shè)定處理客戶請求的線程的最大數(shù)目,這個值也決定了服務(wù)器可以同時響應(yīng)客戶請求的最大數(shù)目,默認(rèn)值為200.
????????? acceptCount?????????? :設(shè)定在監(jiān)聽端口隊列中的最大客戶請求數(shù),默認(rèn)值為10.???? 如果隊列已滿,客戶請求將被拒絕.
????????? connectionTimeout???? :定義建立客戶連接超時的時間,以毫秒為單位.如果設(shè)置為-1,表示不限制建立客戶連接的時間.

????????? JK???? Connector???? 的屬性如下:
--------------------------------------------------------------
????????? className?????????????? :指定實現(xiàn)org.apache.catalina.Connector接口的類,默認(rèn)值為org.apache.coyote.tomact5.CoyoteCnnector.
????????? enableLookups?????? :同上.
????????? redirectPort???????? :同上.
????????? port???????????????????????? :設(shè)定AJP端口號.
????????? protocol???????????????? :必須設(shè)定為AJP/1.3協(xié)議.

轉(zhuǎn)載于:https://www.cnblogs.com/beijingstruggle/p/5729688.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的tomcat的server.xml详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。