每天學習一點(tomcat聯結器優化)
server.xml檔案中的相關配置
http聯結器優化
port TCP埠號。聯結器將建立伺服器套接字並等待傳入連線。您的作業系統只允許一個伺服器應用程式偵聽特定IP地址上的特定埠號。如果使用特殊值0(零),那麼Tomcat將隨機選擇一個空閒埠用於此聯結器。這通常只在嵌入式和測試應用程式中有用。
redirectPort 如果這個聯結器支援非ssl請求,並且接收到一個匹配的請求。<security-constraint>需要SSL傳輸時,Catalina將自動將請求重定向到此處指定的埠號。
URIEncoding 這指定在%xx解碼URL之後用於解碼URI位元組的字元編碼。如果沒有指定,UTF-8將被使用,除非org.apache.catalina.STRICT_SERVLET_COMPLIANCE 系統性質設定為true在這種情況下,將使用ISO-8859-1。
maxPostSize 將由容器表單URL引數解析處理的POST的最大大小(以位元組為單位)。可以通過將此屬性設定為小於零的值來禁用該限制。如果未指定此屬性,則此屬性設定為2097152(2MB)。注意,FailedRequestFilter可用於拒絕超過此限制的請求。
disableUploadTimeout 此標誌允許servlet容器在資料上傳期間使用不同的連線超時,通常是更長的連線超時時間。如果未指定此屬性,則此屬性設定為true這將禁用更長的超時時間。
maxThreads 將建立的請求處理執行緒的最大數目。聯結器,從而確定可處理的同時請求的最大數量。如果未指定此屬性,則此屬性設定為200。如果執行器與此聯結器相關聯,則忽略此屬性,因為聯結器將使用執行器而不是內部執行緒池執行任務。請注意,如果配置了執行器,則該屬性的任何設定都將被正確記錄,但它將被報告為(例如通過JMX)-1表明它沒有被使用。
tcpNoDelay 如果設定為true,將在伺服器套接字上設定tcp_no_delay選項,這將提高大多數情況下的效能。這是設定為true預設情況下。
enableLookups 設為true如果你想連線到request.getRemoteHost()若要執行DNS查詢,以返回遠端客戶端的實際主機名,請執行以下操作。設為false跳過DNS查詢並以字串形式返回IP地址(從而提高效能)。預設情況下,將禁用DNS查詢。
compression 聯結器可以使用HTTP/1.1GZIP壓縮來節省伺服器頻寬。引數的可接受值是“OFF”(禁用壓縮)、“ON”(允許壓縮,這會導致文字資料被壓縮)、“Force”(在所有情況下都強制壓縮)或一個數字整數值(相當於“ON”,但指定輸出壓縮前的最小資料量)。如果不知道內容長度,並將壓縮設定為“ON”或更激進,則輸出也將被壓縮。如果未指定此屬性,則此屬性設定為“OFF”。
compressionMinSize 如果壓縮設定為“on”,則此屬性可用於在壓縮輸出之前指定最小資料量。如果未指定,則此屬性預設為“2048”。
compressibleMimeType 該值是一個逗號分隔的MIME型別列表,可用於這些型別的HTTP壓縮。預設值是 text/html,text/xml,text/plain,text/css,text/javascript,application/javascript
注:MIME(Multipurpose Internet Mail Extensions)多用途網際網路郵件擴充套件型別。是設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問的時候,瀏覽器會自動使用指定應用程式來開啟。多用於指定一些客戶端自定義的檔名,以及一些媒體檔案開啟方式。
protocol 設定處理傳入通訊量的協議。預設值是HTTP/1.1它使用自動切換機制來選擇非阻塞的基於JavaNIO的聯結器或基於APR/本機的聯結器。如果PATH(窗戶)或LD_LIBRARY_PATH(在大多數Unix系統上)環境變數包含Tomcat本機庫,將使用APR/本機聯結器。如果找不到本機庫,將使用非阻塞的基於Java的聯結器。注意,APR/本機聯結器對HTTPS的設定與Java聯結器不同。
若要使用顯式協議而不是依賴上述自動切換機制,可以使用以下值:
org.apache.coyote.http11.Http11Protocol-阻塞Java聯結器
org.apache.coyote.http11.Http11NioProtocol-非阻塞Java NIO聯結器
org.apache.coyote.http11.Http11Nio2Protocol-非阻塞Java NIO 2聯結器
org.apache.coyote.http11.Http11AprProtocol-APR/本機聯結器。
也可以使用自定義實現。
看看我們聯結器比較圖表。對於http和https,這兩個Java聯結器的配置是相同的。
有關apr聯結器和apr特定ssl設定的更多資訊,請訪問APR檔案
ajp聯結器優化
protocol 設定處理傳入通訊量的協議。若要配置AJP聯結器,必須指定此聯結器。如果沒有提供協議的值,則http聯結器而不是配置AJP聯結器。
AJP聯結器的標準協議值是AJP/1.3它使用自動切換機制來選擇基於JavaNIO的聯結器或基於APR/本機的聯結器。如果PATH(窗戶)或LD_LIBRARY_PATH(在大多數Unix系統上)環境變數包含Tomcat本機庫,將使用本機/APR聯結器。如果找不到本機庫,將使用基於JavaNIO的聯結器。
若要使用顯式協議而不是依賴上述自動切換機制,可以使用以下值:
org.apache.coyote.ajp.AjpProtocol-阻塞Java聯結器
org.apache.coyote.ajp.AjpNioProtocol-非阻塞Java NIO聯結器。
org.apache.coyote.ajp.AjpNio2Protocol-非阻塞JavaNIO 2聯結器。
org.apache.coyote.ajp.AjpAprProtocol-APR/本機聯結器。
也可以使用自定義實現。
URIEncoding 這指定在%xx解碼URL之後用於解碼URI位元組的字元編碼。如果沒有指定,UTF-8將被使用,除非org.apache.catalina.STRICT_SERVLET_COMPLIANCE 系統性質設定為true在這種情況下,將使用ISO-8859-1。
maxThreads 將建立的請求處理執行緒的最大數目。聯結器,從而確定可處理的同時請求的最大數量。如果未指定此屬性,則此屬性設定為200。如果執行器與此聯結器相關聯,則忽略此屬性,因為聯結器將使用執行器而不是內部執行緒池執行任務。請注意,如果配置了執行器,則該屬性的任何設定都將被正確記錄,但它將被報告為(例如通過JMX)-1表明它沒有被使用。
acceptCount 當所有可能的請求處理執行緒正在使用時,傳入連線請求的最大佇列長度。佇列滿時收到的任何請求都將被拒絕。預設值為100。
connectionTimeout 聯結器將在接受連線後等待呈現請求URI行。AJP協議聯結器的預設值是-1(即無限)。
minSpareThreads 執行緒的最小數目始終保持執行。這包括活動執行緒和空閒執行緒。如果未指定,則預設為10被利用了。如果執行器與此聯結器相關聯,則忽略此屬性,因為聯結器將使用執行器而不是內部執行緒池執行任務。請注意,如果配置了執行器,則該屬性的任何設定都將被正確記錄,但它將被報告為(例如通過JMX)-1表明它沒有被使用。
tcpNoDelay 如果設定為true,將在伺服器套接字上設定tcp_no_delay選項,這將提高大多數情況下的效能。這是設定為true預設情況下。
enableLookups 設為true如果你想打電話到request.getRemoteHost()若要執行DNS查詢,以返回遠端客戶端的實際主機名,請執行以下操作。設為false跳過DNS查詢並以字串形式返回IP地址(從而提高效能)。預設情況下,將禁用DNS查詢。
allowTrace 可用於啟用或禁用跟蹤HTTP方法。如果未指定此屬性,則此屬性設定為false。