server.xml文件詳解


一、server.xml文件介紹

1.server.xml作用
    Server.xml配置文件用於對整個容器進行相關的配置。
2.server.xml文件的配置元素列表
  1. <Server>:是整個配置文件的根元素。表示整個Catalina容器。
  2. <Connector>:連接器,負責接收客戶的請求,以及向客戶端回送響應的消息。
  3. <Engine>:為特定的Service處理所有的請示。每個Service只能包含一個Engine元素,它負責接收和處理此Service所有的連接器收到的請求,向連接發回響應,並最終顯示在客戶端。<Engine>至少有一個<Host>元素,必須至少有一個<Host>屬性的名字與defaultHost指定的名字相匹配。
  4. <Host>:表示一個虛擬主機,為特定的虛擬主機處理所有請求
  5. <context>:一個WEB應用程序,處理當前WEB應用程序的所有請求,每一個<Context>必須使用唯一的上下文路徑。
  6. <Logger>:表示日志,調試和錯誤信息。
  7. <Realm>:表示存放用戶名,密碼及role 的數據庫。
  8. <Valve>:功能與Logger 差不多,其prefix 和suffix 屬性解釋和Logger 中的一樣。

二、server.xml配置元素詳解

1.<Server>元素
    作用:是整個配置文件的根元素。表示整個Catalina容器。
    屬性:
        className:實現了org.apache.catalina.Server接口的類名,標准實現類是org.apache.catalina.core.StandardServer類。
        Port:Tomcat服務器監聽用於關閉Tomcat服務器的命令(必須)
        Shutdown:發送到端口上用於關閉Tomcat服務器的命令。
    示例:<Server port ="8005" shutdown ="SHUTDOWN" />
2.<Connector>元素
    作用:連接器,負責接收客戶的請求,以及向客戶端回送響應的消息。
    HTTP連接器:
    屬性:
        allowTrace:是否允許HTTP的TRACE方法,默認為false
        emptySessionPath:如果設置為true,用戶的所有路徑都將設置為/,默認為false。
        enableLookups:調用request、getRemoteHost()執行DNS查詢,以返回遠程主機的主機名,如果設置為false,則直接返回IP地址。
        maxPostSize:指定POST方式請求的最大量,沒有指定默認為2097152。
        protocol:值必須為HTTP1.1,如果使用AJP處理器,該值必須為AJP/1.3
        proxyName:如這個連接器正在一個代理配置中被使用,指定這個屬性,在request.getServerName()時返回
        redirectPort:如連接器不支持SSL請求,如收到SSL請求,Catalina容器將會自動重定向指定的端口號,讓其進行處理。
        scheme:設置協議的名字,在request.getScheme()時返回,SSL連接器設為”https”,默認為”http”
        secure:在SSL連接器可將其設置為true,默認為false
        URIEncoding:用於解碼URL的字符編碼,沒有指定默認值為ISO-8859-1
        useBodyEncodingForURI:主要用於Tomcat4.1.x中,指示是否使用在contentType中指定的編碼來取代URIEncoding,用於解碼URI查詢參數,默認為false
        xpoweredBy:為true時,Tomcat使用規范建議的報頭表明支持Servlet的規范版本,默認為false
        acceptCount:當所有的可能處理的線程都正在使用時,在隊列中排隊請求的最大數目。當隊列已滿,任何接收到的請求都會被拒絕,默認值為10
        bufferSize:設由連接器創建輸入流緩沖區的大小,以字節為單位。默認情況下,緩存區大的大小為2048字節
        compressableMimeType:MIME的列表,默認以逗號分隔。默認值是text/html,text/xml,text/plain
        compression:指定是否對響應的數據進行壓縮。off:表示禁止壓縮、on:表示允許壓縮(文本將被壓縮)、force:表示所有情況下都進行壓縮,默認值為off
        connectionTimeout:設置連接的超時值,以毫秒為單位。默認值為60000=60秒
        disableUploadTimeOut:允許Servlet容器,正在執行使用一個較長的連接超時值,以使Servlet有較長的時間來完成它的執行,默認值為false
        maxHttpHeaderSize:HTTP請求和響應頭的最大量,以字節為單位,默認值為4096字節
        maxKeepAliveRequest:服務器關閉之前,客戶端發送的流水線最大數目。默認值為100
        maxSpareThreads:允許存在空閑線程的最大數目,默認值為50
        minSpareThreads:設當連接器第一次啟協創建線程的數目,確保至少有這么多的空閑線程可用。默認值為4
        port:服務端套接字監聽的TCP端口號,默認值為8080(必須)
        socketBuffer:設Socket輸出緩沖區的大小(以字節為單位),-1表示禁止緩沖,默認值為9000字節
        toNoDelay:為true時,可以提高性能。默認值為true
        threadPriority:設JVM中請求處理線程優先級。默認值為NORMAL-PRIORITY
    示例:
   
   
   
           
  1. <Connector port="8080"
  2. maxHttpHeaderSize="8192"
  3. maxThreads="150"
  4. minSpareThreads="25"
  5. maxSpareThreads="75"
  6. enableLookups="false"
  7. redirectPort="8443"
  8. acceptCount="100"
  9. connectionTimeout="20000"
  10. disableUploadTimeout="true"/>

    AJP連接器:用於將Apache與Tomcat集成在一起,當Apache接收到動態內容請求時,通過在配置中指定的端口號將請求發送給在此端口號上監聽的AJP連接器組件。
    屬性:
        backlog:當所有可能的請求處理線程都在使用時,隊列中排隊的請求最大數目。默認為10,當隊列已滿,任何請求都將被拒絕
        maxSpareThread:允許存在空閑線程的最大數目,默認值為50
        maxThread:最大線程數,默認值為200
        minSpareThreads:設當連接器第一次啟動時創建線程的數目,確保至少有這么多的空閑線程可用,默認值為4
        port:服務端套接字的TCP端口號,默認值為8089(必須)
        topNoDelay:為true時,可以提高性能,默認值為true
        soTimeout:超時值
    示例:
   
   
   
           
  1. <Connector port="8089"
  2. enableLookups="false"
  3. redirectPort="8443"
  4. protocol="AJP/1.3"/>
3.<Engine>元素
    作用:為特定的Service處理所有的請示。每個Service只能包含一個Engine元素,它負責接收和處理此Service所有的連接器收到的請求,向連接發回響應,並最終顯示在客戶端。<Engine>至少有一個<Host>元素,必須至少有一個<Host>屬性的名字與defaultHost指定的名字相匹配。
    屬性:
        className:實現org.apache.catalina.Engine接口,默認實現類為org.apache.catalina.core.StandardEngine類
        defaultHost:默認主機名,值必須與<Service>的name值相匹配
        name:指定Engine的邏輯名字(必須)
        jvmRoute:在負載勻衡中使用的標識符,必須唯一
    示例:
   
   
   
           
  1. <Engine name="Cataline" defaultHost="localhst"/>
4.<Host>元素
    作用:表示一個虛擬主機,為特定的虛擬主機處理所有請求
    屬性:
        appBase:設定應用程序的基目錄,絕對路徑或相對於%CATALINA_HOME%的路徑名
        autoDeploy:指示Tomcat運行時,如有新的WEB程序加開appBase指定的目錄下,是否為自動布署,默認值為true
        className:實現了org.apache.catalina.Host接口的類,標准實現類為org.apache.catalina.core.StandardHost類
        deployOnStartup:Tomcat啟動時,是否自動部署appBase屬性指定目錄下所有的WEB應用程序,默認值為true
        name:虛擬主機的網絡名(必須)
    標准Host實現類org.apahce.catalina.core.StandardHost支持的附加屬性:
        deployXML:為false將不會解析WEB應用程序內部的context.xml,默認值為true
        unPackWARs:虛擬主機指定臨時讀寫使用的目錄的路徑名,不設,Tomcat會在%CATALINA_HOME%/work目錄下提供一個合適的目錄。
    示例:
   
   
   
           
  1. <Host name="localhst"
  2. appBase="webapps"
  3. unpackWARs="true"
  4. autoDeploy="true"
  5. xmlValidation="false"
  6. xmlNamespaceAware="false">
    配置虛擬主機:
   
   
   
           
  1. <Hostname="xxx" appBase="c:/test">
  2. <Contentpath="xxx" docBase="e:/abe"/>
  3. </Hostname>
5.<context>元素
    作用:一個WEB應用程序,處理當前WEB應用程序的所有請求,每一個<Context>必須使用唯一的上下文路徑。
    屬性:
        className:實現了org.apache.catalina.Context接口的類,標准實現類org.apache.catalina.core.StandardContext類
        cookies:是否將Cookie應用於Session,默認值為true
        crossContext:是否允許跨域訪問,為true時,在程序內調用ServletContext.getContext()方法將返回一個虛擬主機上其它web程序的請求調度器。默認值為false,調 徑用getContext()返回為null
        docBase:絕對路徑或相對於Host的appBase 屬性的相對路徑
        privileged:為true,允許Web應用程序使用容器的Servlet
        path:指定上下文路徑。一個虛擬主機中,上下文路徑必須唯一
        reloadable:為true,Tomcat運行時,如果WEB-INF/classes和WEB-INF/lib目錄中有改變,Tomcat會自動重新加載該WEB應用程序。雖方便,但開銷也大,默認值為false,我們在調用可以打開,發布后再關閉。
        cacheMaxSize:靜態資源緩存最大值,以KB為單位,默認值為10240KB
        cachingAllowed:是否允許靜態資源緩存,默認為true
        caseSensitive:默認為true,資源文件名大小寫敏感,如果為false大小寫不敏感
        unpackWAR:默認為true
        workDir:為WEB應用程序內部的Servlet指定臨時讀寫的目錄路徑名。如沒有設置,則Tomcat會在%CATALINA_HOME%/work目錄下提供一個合適的目錄
    示例:
  
  
  
          
  1. <Content path="/abc" docBase="d:/xyz" reloadable="true"/>
-------------------------------------------------------------------------------------------------------------------------------






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM