天天看點

tomcat8 server.xml 标簽connector 配置說明

介紹

每個connector标簽表示一個連結組建,它支援http/1.1協定,能讓tomcat作為一個獨立的web伺服器,有執行servlet和JSP頁面的能力,在目前伺服器監聽特定的TCP端口。可以一個或多個connector标簽,每個connector作為tomcat服務的一部分,每個connector使用相關引擎來執行請求處理和建立響應。

屬性

公用屬性

所有類型connector都支援的屬性。

屬性 描述
allowTrace 用來啟用HTTP跟蹤,預設為false
asyncTimeout 設定異步請求逾時時間,機關毫秒。預設為30000.
enableLookups 設定為true時request.getRemoteHost()傳回實際的主機名,設定為false時request.getRemoteHost()傳回IP位址。預設為false。
maxHeaderCount 限制請求Header的長度,如果超過請求将被拒絕。0表示沒有限制,預設值為100。
maxParameterCount 設定參數的最大長度,參數由容器自動解析,超出長度的參數将被忽略,0表示沒有限制,預設值為10000。請注意, FailedRequestFilter 過濾器可以用來拒絕達到了極限值的請求。
maxPostSize 設定由容器解析的URL參數的最大長度,-1(小于0)為禁用這個屬性,預設為2097152(2M) 請注意, FailedRequestFilter 過濾器可以用來拒絕達到了極限值的請求。
maxSavePostSize 最大大小位元組的文章将被儲存/緩沖由容器在形式或CLIENT-CERT身份驗證。 對于這兩種類型的身份驗證,之前的文章将被儲存/緩沖使用者身份驗證。 CLIENT-CERT身份驗證,文章對SSL握手的時間緩沖,緩沖清空處理請求。 對表單身份驗證後儲存在使用者定向到登入表單和保留,直到使用者成功進行身份驗證或會話相關的身份驗證請求到期。 的極限可以禁用這個屬性設定為1。設定屬性為0将禁用儲存POST資料的驗證。如果不指定,這個屬性被設定為4096(4 kb)。
parseBodyMethods 一個以逗号分隔的請求的HTTP方法的身體将解析請求參數完全相同的釋出。 這是有用的在RESTful應用程式想要支援POST-style PUT請求的語義。 注意後使Tomcat以外的任何設定的行為,違背了servlet規範的意圖。 HTTP方法跟蹤是專門禁止依照HTTP規範。預設的是post。
port 設定連接配接器監聽的端口(0-65535)。如果設定成0,将随機生成(通常隻用于嵌入式和測試應用程式)。
protocol 設定連接配接器 處理類。現在tomcat提供4種連接配接器:org.apache.coyote.http11.Http11Protocol - 阻塞的的Java連接配接器org.apache.coyote.http11.Http11NioProtocol - 非阻塞的的Java NIO連接配接器;org.apache.coyote.http11.Http11Nio2Protocol - 非阻塞的的Java NIO2連接配接器;org.apache.coyote.http11.Http11AprProtocol - 本地連接配接器也可以使用自定義實作的連接配接器。注意: 如果配置的是預設的HTTP/1.1,将自動配置一個 非阻塞的java NIO連接配接器 或 APR/native(本地連接配接器)。 如果環境變量(window path 和 LD_LIBRARY_PATH unix\linux)含有tomcat本地庫,将使用APR/native連接配接器。 如果環境變量不存在将使用 非阻塞的java NIO連接配接器。 APR/native連接配接器 和 非阻塞的java NIO連接配接器 配置參數是不一樣的。建議: 在生産環境中配置一個固定的連接配接器,不使用自動配置。看看我們的連接配接器比較圖表。 Java連接配接器的配置是相同的,http和https。有關APR 連接配接器的更多資訊和APR 具體的SSL設定APR 請通路文檔
proxyName 配置這個屬性來指定調用request.getServerName()時傳回的伺服器名稱。有關更多資訊,請參見代理支援。
proxyPort 配置這個屬性來指定調用request.getServerPort()時傳回的伺服器端口。有關更多資訊,請參見代理支援。
redirectPort 配置指定端口來 ssl連接配接,一般預設配置是8443,但是浏覽器預設的是443端口請求ssl伺服器,是以在https 下将8443改為443.
scheme 配置這個屬性來指定調用request.getScheme()時傳回的協定名稱。預設是http。如果使用SSL連接配接器,将本屬性設定成https。
secure 如果你在SSL連接配接器或非SSL連接配接器 接收一個用SSL過來的請求,将這個屬性設定成true,調用request.isSecure()時傳回true。預設為false。
URIEncoding 配置URI使用的字元編碼,來解碼?之前的字元串。 一般情況下預設使用utf-8,在org.apache.catalina.STRICT_SERVLET_COMPLIANCE(系統屬性)為true的情況下使用 ISO-8859-1。
useBodyEncodingForURI 當設定為true時 根據http body設定的字元集來解碼 url裡? 之後的參數。Tomcat 4.1.x 以上的版本支援, setCharacterEncoding方法也用于參數的URL,預設值是false。注意: 這指定如果在contentType應該用于指定的編碼URI查詢參數,而不是使用URIEncoding。 這個設定存在與Tomcat 4.1.x 相容。内容類型指定的編碼,或者顯式地設定使用的要求。 setCharacterEncoding方法也用于參數的URL。預設值是false。注釋: 1)此設定僅适用于請求的查詢字元串(?之後的字元串),不會影響URIEncoding設定的?之前的字元串解碼。2)如果請求字元編碼是錯誤的(不是由SetCharacterEncodingFilter 類似的過濾器或setCharacterEncoding方法 提供字元集),預設編碼總是“iso-8859-1”。更詳細的解釋請看URIEncoding和useBodyEncodingForURI詳解
useIPVHosts 設定true,tomcat會根據指定的request header Host來确定執行的連接配接器。預設是false。應用場景隻能使用域名通路。
xpoweredBy 若設定為true,Tomcat使用規範建議的報頭表明支援Servlet的規範版本,預設false。

标準屬性

标準的HTTP連接配接器(BIO、NIO NIO2和APR/native)都支援以下屬性除了常見的連接配接器上面列出的屬性。

屬性 描述
-------
acceptCount 當tomcat起動的線程數達到最大時,接受排隊的請求個數,預設值為100。 更詳細的解釋請看acceptCount解釋
acceptorThreadCount 用于接受連接配接的線程數量。增加這個值在多CPU的機器上,盡管你永遠不會真正需要超過2。 也有很多非維持連接配接,您可能希望增加這個值。預設值是1。
acceptorThreadPriority 處理的優先級線程。接受新連接配接使用的線程。 預設值是5(java.lang.Thread.NORM_PRIORITY。NORM_PRIORITY常數)。 看java.lang.Thread的JavaDoc。線程類的更多細節在這個優先級是什麼意思。
address 與多個伺服器的IP位址,該屬性指定的位址将用于監聽指定的端口。 預設情況下,将使用這個端口與伺服器相關聯的所有IP位址。
allowedTrailerHeaders 預設的Tomcat将忽略所有拖車頭當處理分塊輸入。 頭要處理,它必須被添加到這個以逗号分隔的标題名稱。
bindOnInit 控制時使用的插座連接配接器被綁定。 預設綁定啟動連接配接器時,釋放當連接配接器被摧毀。 如果設定為false,套接字将被綁定在啟動連接配接器時,釋放時停止。
compressableMimeType 一個逗号分隔的清單可以使用HTTP壓縮的MIME類型。 預設值是text/html,text/xml,text/plain,text/css,text/javascript,application/javascript
compression 連接配接器可以使用HTTP/1.1 GZIP壓縮為了節省伺服器的帶寬。 參數的可接受的值是“關閉”(禁用壓縮),“on”(允許壓縮,導緻文本資料壓縮),“力”(力量壓縮在所有情況下),或一個數值整數值(相當于“上”,但指定的最小輸出壓縮之前)的資料量。 如果内容長度是未知的和壓縮設定為“on”或更激進,輸出也将被壓縮。 如果不指定,這個屬性被設定為“關閉”。注解: 之間有一個權衡使用壓縮使用sendfile(節省帶寬)和功能(儲存你的CPU周期)。 如果連接配接器支援sendfile特性,例如NIO連接配接器、使用sendfile将優先于壓縮。 靜态檔案更大的将48 Kb将未壓縮的。 你可以關掉sendfile通過設定useSendfile連接配接器的屬性,如下記錄,或改變sendfile使用率閥值配置的DefaultServlet在預設conf/server.xml或在web.xml的web應用程式。
compressionMinSize 如果壓縮設定為“on”,那麼這個屬性可用于指定輸出前的最低數量的資料壓縮。如果不指定,該屬性預設為“2048”。
connectionLinger 秒數在這個連接配接器将持續使用的套接字時關閉。預設值是 -1,禁用socket 延遲時間。
connectionTimeout 這個連接配接器将等待的毫秒數,接受一個連接配接後,請求URI送出。 使用一個值為1表示沒有(無限)逾時。預設值為60000(即60秒),但請注意,标準的server.xml附帶Tomcat這個設定為20000(即20秒)。 除非disableUploadTimeout是設定為false,這逾時時也會使用閱讀請求主體(如果有的話)。
connectionUploadTimeout 指定逾時時間,以毫秒為機關,使用資料上傳是在進步。 這隻生效disableUploadTimeout是否設定為false。
disableUploadTimeout 這個标志允許servlet容器使用一個不同的,通常長在資料上傳連接配接逾時。 如果不指定,這個屬性被設定為true,表示禁用該時間逾時。
executor 在一個執行人元素的引用名稱。 如果設定了這個屬性,指定遺囑執行人存在,連接配接器将使用執行程式,和所有其他線程屬性将被忽略。 注意,如果沒有指定一個共享的遺囑執行人連接配接器,連接配接器将使用一個私有的,内部執行人提供線程池。
executorTerminationTimeoutMillis 私有的時間内部執行人将等待請求處理線程結束之前繼續停止連接配接器的過程。 如果沒有設定,預設是0(零)BIO連接配接器和5000(5秒)NIO,NIO2和APR/native連接配接器。
keepAliveTimeout 這個連接配接器的毫秒數将關閉連接配接之前等待另一個HTTP請求。 預設值是使用connectionTimeout屬性的值被設定。使用一個值為-1表示沒有(無限)逾時。
maxConnections 最大連接配接數,伺服器将接受和處理在任何給定的時間。 這個數字已經達到時,伺服器将接受,但不是過程,另外一個連接配接。 這些額外的連接配接被阻塞,直到正在處理的連接配接數量低于maxConnections此時伺服器将重新開始接受和處理新連接配接。 注意,一旦達到極限,作業系統可能仍然基于acceptCount接受連接配接設定。預設值不同的連接配接器類型。 對于生物預設的值是maxThreads除非使用一個執行人在這種情況下,預設的值将maxThreads執行人。 NIO和NIO2預設是10000。APR/native,預設是8192。
maxExtensionSize 最大連接配接數,伺服器将接受和處理在任何給定的時間。 這個數字已經達到時,伺服器将接受,但不是過程,另外一個連接配接。 這些額外的連接配接被阻塞,直到正在處理的連接配接數量低于maxConnections此時伺服器将重新開始接受和處理新連接配接。 注意,一旦達到極限,作業系統可能仍然基于acceptCount接受連接配接設定。預設值不同的連接配接器類型。 對于生物預設的值是maxThreads除非使用一個執行人在這種情況下,預設的值将maxThreads執行人。 NIO和NIO2預設是10000。APR/native,預設是8192。注解: APR/native在Windows上,配置的值将被減少到最高1024的倍數小于或等于maxConnections。這樣做是為了性能的原因。 如果設定為值為-1,maxConnections功能被禁用和連接配接不計算在内。
maxHttpHeaderSize 請求和響應HTTP頭的最大大小,位元組中指定。 如果不指定,這個屬性被設定為8192(8 KB)。
maxKeepAliveRequests HTTP請求的最大數量可以管線式直到伺服器連接配接關閉。 設定這個屬性1将禁用HTTP/1.0 keep-alive,以及HTTP/1.1 keep-alive和pipelining。 設定為1将允許無限數量的管道或 keep-aliveHTTP請求。如果不指定,這個屬性被設定為100。
maxSwallowSize 最大請求體位元組數(不包括傳輸編碼開銷),将由Tomcat吞下上傳失敗。 上傳失敗是當Tomcat知道請求的身體将被忽略但客戶仍将其發送。 如果Tomcat不吞下身體的客戶不太可能看到響應。 如果沒有指定預設将使用2097152(2位元組)。 小于0的值表明沒有限制應該被強制執行。
maxThreads 請求處理線程的最大數量是由這個連接配接器,是以決定了同時發生的請求的最大數量,可以處理。 如果不指定,這個屬性被設定為200。 如果一個執行人與這個連接配接器,該屬性将被忽略的連接配接器使用執行程式将執行任務而不是一個内部線程池。
maxTrailerSize 拖頭的總長度限制的最後一塊分塊的HTTP請求。 如果該值是-1,沒有限制将會實施。如果沒有指定,那麼将使用預設值為8192。
minSpareThreads 最低數量的線程總是運作。如果沒有指定,預設為10。
noCompressionUserAgents 價值是一個正規表達式(使用java.util.regex)比對使用者代理頭的HTTP用戶端壓縮不應使用,因為這些客戶,雖然他們做的廣告支援的功能,有一個破碎的實作。 預設值是一個空字元串(regexp比對禁用)。
processorCache 協定處理器緩存的處理器對象來提高性能。 該設定決定多少這些對象的緩存。-1意味着無限的,預設是200。 如果不使用Servlet 3.0異步處理,預設是使用一樣的maxThreads設定。 如果使用Servlet 3.0異步處理,預設是使用大maxThreads和預期的并發請求的最大數量(同步和異步)。
restrictedUserAgents 價值是一個正規表達式(使用java.util.regex)比對使用者代理頭的HTTP用戶端HTTP/1.1或HTTP/1.0保持活着不應使用,即使客戶廣告支援這些特性。 預設值是一個空字元串(regexp比對禁用)。
server 覆寫伺服器的http響應頭。 如果設定,該屬性的值覆寫了Tomcat預設和任何伺服器頭由一個web應用程式。 如果沒有設定,任何值指定的應用程式使用。 如果應用程式沒有指定一個值,那麼使用Apache-Coyote/1.1。除非你是有用的修改,不了你不需要這個功能。
socketBuffer 緩沖區的大小(以位元組為機關)套接字提供輸出緩沖。-1可以禁用指定緩沖區的使用。預設情況下,将使用9000位元組的緩沖區。
SSLEnabled 使用這個屬性來啟用SSL連接配接器上的通信量。 打開SSL握手/加密/解密連接配接器将這個值設定為true。預設值是false。 當把這個價值真正的你想要設定方案和安全屬性傳遞正确的request.getScheme()和request.isSecure()值servlet的更多資訊,請參見SSL支援。
tcpNoDelay 如果設定為true,TCP_NO_DELAY選項将被設定在伺服器套接字,而在大多數情況下提高性能。這是預設設定為true。
threadPriority 請求處理線程的優先級在JVM中。預設值是5(java.lang.Thread.NORM_PRIORITY 常數)。看到 java.lang.Thread 的JavaDoc。線程類的更多細節在這個優先級是什麼意思。
upgradeAsyncWriteBufferSize 預設大小的緩沖區配置設定為異步寫道,不能在單個操作完成,中指定的位元組。 寫資料,不能立即将存儲在這個緩沖區,直到它可以編寫。 如果更多的資料需要存儲空間是可用的緩沖區比緩沖區的大小将會增加的時間寫作。 如果沒有指定将使用預設值為8192。

無意中發現了一個巨牛的人工智能教程,忍不住分享一下給大家。教程不僅是零基礎,通俗易懂,而且非常風趣幽默,像看小說一樣!覺得太牛了,是以分享給大家。點這裡可以跳轉到教程。

繼續閱讀