Tomcat中的Connector配置

JBoss使用Tomcat做爲Web容器,所以在JBoss中對於Web容器的配置也相似於在Tomcat中的配置,主要就是對於 server.xml文件的編輯,在JBoss 5.x中,這個文件位於${JBOSS.HOME}\server\${confifure}\deploy\jbossweb.sar下,其中 configure的值能夠是all, default,web,standard, minimal等。下面的代碼展現了一個JBoss default配置下的server.xml,因爲篇幅緣由,將其中的註釋都已經去掉了。html

Xml代碼  收藏代碼web

  1. <Server>  
  2.    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />  
  3.    <Listener className="org.apache.catalina.core.JasperListener" />  
  4.    <Service name="jboss.web">  
  5.       <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}"   
  6.                connectionTimeout="20000" redirectPort="8443" compression="on"   
  7.                compressionMinSize="1" compressableMimeType="text/html,text/xml" />  
  8.       <Engine name="jboss.web" defaultHost="localhost">  
  9.          <Realm className="org.jboss.web.tomcat.security.JBossWebRealm"  
  10.             certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping"  
  11.             allRolesMode="authOnly"  
  12.             />  
  13.          <Host name="localhost">   
  14.             <Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve"  
  15.             cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"  
  16.             transactionManagerObjectName="jboss:service=TransactionManager" />  
  17.          Host>  
  18.       Engine>  
  19.    Service>  
  20. Server>  

         在上面的配置文件中,Server是根節點,一個Server就表明一個Servlet容器,所以在server.xml中,這個節點只能有一個,在Server節點下,能夠存在一個或者多個Service節點。apache

 

         一個Service節點表明了一個或者多個Connector和一個Engine,而Connector和Engine是在server.xml中兩個重 要的配置項,Connector的主要功能是接受、響應用戶請求。經常使用的Connector有HTTP/1.1 Connector和AJP Connector,HTTP/1.1 Connector主要用於處理用戶的HTTP請求,須要注意的是雖然它名叫HTTP/1.1 Connector,可是是徹底兼容HTTP/1.0協議的。AJP Connector主要使用AJP協議和Web Connector通訊,一般用於集羣中。瀏覽器

 

         HTTP/1.1 Connector的實例監聽在用戶配置的端口上,當應用服務器啓動時,HTTP/1.1 Connector負責建立若干線程,用於處理用戶請求,建立的線程數目取決於用戶配置的minThreads值,默認爲5,當有更多的用戶請求到來 時,HTTP/1.1 Connector將會建立更多的線程用於處理請求,建立線程的最大值由maxThreads定義,默認值爲20,當全部的線程都在忙於處理用戶請求時, 新到來的請求將會放入HTTP/1.1 Connector建立的Socket隊列中,隊列的長度由acceptCount屬性定義,當等待隊列也被佔用滿了,新來的用戶請求將會收到connection refused錯誤。tomcat

 

         全部的Connector提供的配置項(不徹底版scheme, isSecure, xpoweredBy, useIPVHosts ):服務器

  • allowTrace 若是須要服務器可以處理用戶的HAED/TRACE請求,這個值應該設置爲true,默認值是false;
  • emptySessionPath 若是設置爲true,全部session,cookie的path將會被設置爲/,這種設置一般是在portlet中比較有用,默認值是false;
  • enableLookups 若是須要在調用request.getRemoteHost()方法時獲取到客戶端的機器名,則須要配置爲true,若是配置爲false,將會跳過DNS查詢直接返回客戶端機器的IP地址,一般爲了提升性能,將此值設置爲false,默認值是true;
  • maxPostSize POST方法可以提交的數據的最大大小,若是沒有聲明或者設置爲小於等於0,則表示POST提交的數據大小是不限制的,默認值是2Megabytes.
  • protocol 設置處理請求的協議,默認是HTTP/1.1,即org.apache.coyote.http11.Http11Protocol,此外還 支持的協議有:org.apache.coyote.http11.Http11NioProtocol(經過NIO處理用戶請求,能夠提升系統性能), org.apache.coyote.http11.HttpAprProtocol。
  • proxyName/proxyPort 若是Web服務器使用了代理服務器,配置此參數意味着在調用request.getServerName的時候將會獲取代理服務器的名稱,getServerPort()將會返回proxyPort。
  • redirectPort 若是Connector的配置是支持非SSL的請求,當一個SSL請求到來時,服務器會自動的將請求重定位到redirectPort。
  • URIEncoding URI字節轉化成String的時候的編碼方式,默認爲ISO-8859-1,若是頁面須要支持中文,通常能夠將其設置爲UTF-8或者GBK,GB2312。
  • useBodyEncodingForURI 若是設置爲true,則會根據頁面的編碼決定URI的編碼方式,默認是false。

   Http/1.1 Connector提供的配置項:cookie

  • acceptCount 等待隊列的長度,默認值是100。
  • address 若是Tomcat所在的主機有多個IP,這個值聲明瞭用於監聽HTTP請求的IP地址。
  • bufferSize Connector建立的輸入流的大小,默認值是2048 bytes,提升這個值能夠提高性能,增長內存消耗。
  • compressableMimeType 使用HTTP壓縮的MIME類型,使用逗號分割,默認值是 text/html,text/xml,text/plain。
  • compression 爲了節省帶寬,能夠將這個值設置爲on,從而啓用HTTP/1.1 GZIP壓縮。off關閉壓縮,forces強制使用壓縮,默認值是off。
  • connectionTimeout Connector接受一個鏈接後等待的時間(milliseconds),默認值是60000。
  • executor 在Service節點下,Connector節點前能夠配置一個Executor節點用於管理線程,這個屬性的值是配置的Executor的名稱,若是應用了此屬性且executor存在,那麼任何其餘的關於thread的配置將會被忽略。
  • keepAliveTimeout 在Connector關閉鏈接前,Connector爲另一個請求Keep Alive所等待的微妙數,默認值和 connectionTimeout 同樣。 
  • maxHttpHeaderSize HTTP請求、響應頭信息的最大大小,默認是8192bytes。
  • maxKeepAliveRequests HTTP/1.0 Keep Alive 和HTTP/1.1 Keep Alive / Pipeline的最大請求數目,若是設置爲1,將會禁用掉Keep Alive和Pipeline,若是設置爲小於0的數,Keep Alive的最大請求數將沒有限制。默認爲100。
  • maxThreads 用於處理用戶請求的最大線程數,默認值是20。
  • noCompressionUserAgents: 設置不使用HTTP GZIP壓縮的客戶端,使用逗號分隔,在某些瀏覽器不支持壓縮的時候可使用此屬性。
  • port Connector監聽的端口。
  • restrictedUserAgents 設置不使用Keep Alive的客戶端代理名稱,使用逗號分割,默認值是空字符串。
  • server 覆蓋HTTP響應的serve頭信息,若是不設置的話,默認值是 Apache-Coyote/1.1。通常狀況下不須要關注此屬性。
  • socketBuffer Socket輸出流緩衝區的大小,默認是9000bytes,若是設置爲小於0的值,則表示不使用此緩衝區。
  • tcpNoDelay 默認值是true,設置爲true能夠提升系統性能。
  • threadPriority 請求處理線程的優先級,默認的優先級是NORMAL。
相關文章
相關標籤/搜索