Tomcat HTTP/1.1 Connector 參數整理


 HTTP/1.1 Connector

TOMCAT部署在多IP的server - 身出選境 - 身出選境

 

概述

Coyote HTTP/1.1 Connector元素是一個支持HTTP/1.1協議的Connector組件。它使Catalina除了能夠執行servlet和JSP頁面外,還能夠作為一個單獨的web server運行。Connector對象的實例在服務器上監聽特定的TCP端口。一個Service可以配置一個或多個這樣的Connector,每個Connector都把請求轉發給對應Engine進行處理,並產生響應。

在 服務器啟動的時候,Connector會創建一些請求處理線程(基於minProcessors屬性值)。每個請求需要一個線程為其服務,直到服務完成。 如果同一時刻的請求數多於可用的請求處理線程,會創建額外的處理線程,線程數的上限是maxProcessors。如果已經到達了最大請求數,仍然有請求 發生,它們被緩存在由Connector創建的server socket中,直到緩存的上限(由acceptCount屬性的值定義)。這以后所有的請求都會收到“拒絕連接”的錯誤,直到有資源能夠處理它們。

屬性
公共屬性

所有Connector的實現支持如下屬性:

屬性 描述
enableLookups

如果希望調用request.getRemoteHost()進行DNS查詢,以返回遠程客戶的實際主機名,將enableLookups設為true。如果希望忽略DNS查詢,僅僅返回IP地址,設為false(這樣提高了性能)。缺省情況下,DNS查詢是使能的。

redirectPort 如果Connector支持非SSL請求,在收到一個要求使用SSL傳輸的請求以后,Catalina會自動將該請求重定向到這里指定的端口號。
scheme

調用request.getScheme()時返回的協議名稱。比如,在SSL Connector上可能將這個屬性設為“https”。缺省值為“http”,更多信息,參考SSL支持

secure

如果希望在該Connector接收到的請求上調用request.isSecure()返回true,設置該屬性為true。缺省值為false。

標准實現

Coyote HTTP/1.1 Connector的標准實現是org.apache.coyote.tomcat5.CoyoteConnector。它還支持如下的附加屬性

屬性 描述
acceptCount

當所有可能的請求處理線程都被使用的時候,連接請求隊列的最大長度。如果該隊列為滿,所有的請求都被拒絕,缺省值為10。

address 對於具有多個IP地址的server,這個屬性指定了用於監聽特定端口的地址。缺省情況下,端口作用於server的所有IP地址。
bufferSize

connector創建的輸入流緩沖區的大小(以字節為單位)。缺省情況下,bufferSize=2048。

compression

為 了節省服務器帶寬,Connector可能使用HTTP/1.1GZIP壓縮。這個參數的可接受值為“off”(不使用壓縮),“on”(壓縮文本數據),“force”(在所有的情況下強制壓縮),或者使用一個數值 整數(等價於“on”,但是指定了輸出被壓縮是的最小的數據數)。如果content-length未知, 而compression設置成“on”或者 更強,輸出也會被壓縮。如果沒有指定,這個屬性被設成“off”

connectionLinger

當Connector使用的socket被關閉的時候,保留該socket的時間,以毫秒為單位。缺省值為-1(不使用socket linger)

connectionTimeout

在Connector接受一個連接以后,等待發生第一個請求的時間,以毫秒為單位。缺省值為60000(60秒)

debug

日志消息的詳細程度,數字越大,輸出越詳細,如果沒有指定,使用缺省值0。

disableUploadTimeout 這個標志允許servlet container在一個servlet執行的時候,使用一個不同的,更長的連接超時。最終的結果是給servlet更長的時間以便完成其執行,或者在數據上載的時候更長的超時時間。如果沒有指定,設為false。
maxKeepAliveRequests 在server關閉連接之前,接受的HTTP請求的最大數目。如果該值設為1,會禁止HTTP/1.0保活,同時也會禁止HTTP/1.1保活和pipelining。如果沒有指定,設為100。
keepAliveTimeout 長連接最大保持時間(毫秒)。此處為15秒。
maxSpareThreads

在線程池開始停止不必要的線程之前,允許存在的最大未使用的請求處理線程。缺省值為50。

 

maxThreads

Connector能夠創建的最大請求處理線程數,這個值決定了同時能夠處理的最大請求數。如果沒有指定,缺省值為200。

minSpareThreads

當Connector第一次啟動時,創建的請求處理線程數。connector同時必須保證指定數目的空閑處理線程。這個值應該設置成比maxThreads小的數值,缺省值為4。

port

Connector創建server socket並等待連接的TCP端口號。操作系統在特定的IP地址上只允許一個服務器應用程序監聽特定的端口。

protocol

為了使用HTTP處理器,該屬性值必須為HTTP/1.1(缺省值)

proxyName

如果connector在代理配置中使用,將這個屬性設置成調用request.getServerName()時返回的服務器名稱。更多信息參考代理支持。

proxyPort

如果Connector在代理配置中使用,這個屬性指定了調用request.getServerPort()返回的端口值。更多信息參考代理支持。

socketBuffer

socket輸出緩沖區的大小。如果為-1,不使用緩沖。缺省值為9000字節。

tcpNoDelay

如果為true,服務器socket會設置TCP_NO_DELAY選項,在大多數情況下可以提高性能。缺省情況下設為true。

嵌套組件

可以嵌套在Connector中的唯一元素是Factory,用來配置服務器套接口工廠組件。這個組件從來都不需要,現在支持這個組件是為了與Tomcat的早期版本兼容。

專有特征
HTTP/1.1 和HTTP/1.0 支持

Connector 支持HTTP/1.1協議的所有必需特征(如RFC2616所描述的),包括永久性連接,流水線,expectations and chunked encoding。如果客戶端(通常是一個瀏覽器)只支持HTTP/1.0,Connector會自動跳回到HTTP/1.0。不需要特殊的配置來使能這 個支持。Connector也支持HTTP/1.0保活機制。

RFC2616要求HTTP服務器的響應總是以它們宣稱支持的最高HTTP版本開始。因此,這個Connector在它的響應的開始總是返回HTTP/1.1。

 

日志輸出

Connector產生的任何調試或者異常信息都會被自動路由到與Connector所屬的Engine的Logger。不需要特殊的配置來使能這個支持。

 

代理支持
Tomcat位於代理服務器后面時,可以使用proxyName和proxyPort屬性。這些屬性修改了調用 requset.getServerName()和request.getServerPort()的返回值,用來構造重定向的絕對URL。如果不設置這 些值,返回值反映了代理服務器收到的連接的服務器名稱和端口號,而不是客戶端發起的服務器名稱和端口號。

更多信息,參考代理支持HOW-TO

SSL支持

對Connector的特定實例,可以將secure屬性設為true,來使能SSL支持。另外,可以配置如下屬性:

 

屬性 描述
algorithm

使用的認證編碼算法。缺省值為SunX509。

 

clientAuth

如果在接受某個連接之前,需要客戶端發送有效證書鏈,將該值設為true。如果為false(缺省值),不需要使用證書鏈。除非客戶端請求被CLIENT-CERT認證保護的資源。

 

keystoreFile

存儲服務器證書的keystore文件路徑。缺省情況下,路徑指向運行Tomcat的用戶主目錄下的".keystore"。

 

keystorePass

用來訪問服務器證書的密碼,缺省值未"changeit"

 

keystoreType

用於存儲服務器證書的keystore文件的類型。缺省值未"JKS"

 

sslProtocol

SSL協議的版本號,缺省值是TLS

 

ciphers

可以使用的加密算法列表,用逗號分開。如果沒有指定,可以使用任何算法。

 


免責聲明!

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



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