1. 程式人生 > >每天學習一點(tomcat連接器優化)

每天學習一點(tomcat連接器優化)

servlet blog 請求重定向 隨機 unix系統 read size max 技術分享

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。

技術分享圖片

每天學習一點(tomcat連接器優化)