AJP 連接器

目錄

簡介

AJP 連接器元素表示透過 AJP 通訊協定與網頁連接器通訊的 連接器元件。這用於您希望將 Tomcat 無形整合到現有 (或新的) Apache 安裝中,而且您希望 Apache 處理網頁應用程式中包含的靜態內容,和/或使用 Apache 的 SSL 處理。

使用 AJP 通訊協定需要額外的安全性考量,因為它允許比 HTTP 連接器更直接地操作 Tomcat 的內部資料結構。應特別注意用於 addresssecretsecretRequiredallowedRequestAttributesPattern 屬性的值。

此連接器在與 引擎jvmRoute 屬性結合使用時,支援負載平衡。

此 Tomcat 版本支援的原生連接器為

  • JK 1.2.x 與任何受支援的伺服器。請參閱 JK 文件 以取得詳細資料。
  • mod_proxy 在 Apache httpd 2.x(預設包含在 Apache HTTP Server 2.2 中),已啟用 AJP:請參閱 httpd 文件 以取得詳細資料。

其他支援 AJP 的原生連接器可能可行,但不再受支援。

屬性

常見屬性

所有 Connector 的實作都支援下列屬性

屬性 說明
allowBackslash

如果這項設定為 true,則 '\' 字元將被允許作為路徑分隔符號。

如果未指定,將使用預設值 false

allowTrace

布林值,可用於啟用或停用 TRACE HTTP 方法。如果未指定,此屬性設定為 false。根據 RFC 7231 第 4.3.8 節,cookie 和授權標頭將從對 TRACE 要求的回應中排除。如果您希望包含這些標頭,您可以為目標 Servlet 實作 doTrace() 方法,並完全控制回應。

asyncTimeout

非同步要求的預設逾時時間(毫秒)。如果未指定,此屬性設定為 Servlet 規範預設值 30000(30 秒)。

discardFacades

布林值,可用於啟用或停用隔離容器內部要求處理物件的門面物件的回收。如果設定為 true,門面將在每個要求後設定為垃圾回收,否則將重複使用。當啟用安全性管理員時,此設定無效。如果未指定,此屬性設定為 true

enableLookups

如果您希望呼叫 request.getRemoteHost() 執行 DNS 查詢以回傳遠端用戶端實際的主機名稱,請設定為 true。設定為 false 以略過 DNS 查詢,並以字串形式回傳 IP 位址(從而提升效能)。預設情況下,DNS 查詢已停用。

encodedSolidusHandling

設定為 reject 時,包含 %2f 序列的要求路徑將會被拒絕,並回傳 400 回應。設定為 decode 時,包含 %2f 序列的要求路徑將在解碼其他 %nn 序列的同時,將該序列解碼為 /。設定為 passthrough 時,包含 %2f 序列的要求路徑將會在 %2f 序列不變的情況下進行處理。如果未指定,預設值為 reject

enforceEncodingInGetWriter

如果這是 true,則在未指定字元編碼的情況下呼叫 Response.getWriter() 會導致後續呼叫 Response.getCharacterEncoding() 傳回 ISO-8859-1,而 Content-Type 回應標頭會包含 charset=ISO-8859-1 元件。(SRV.15.2.22.1)

如果未指定,將使用符合預設規格的值 true

maxCookieCount

允許請求的最大 Cookie 數。小於 0 的值表示沒有限制。如果未指定,將使用預設值 200。

maxParameterCount

從查詢字串取得的請求參數 (包括上傳的檔案) 的最大總數,以及對於 POST 請求,如果內容類型是 application/x-www-form-urlencodedmultipart/form-data,則從請求主體取得的請求參數。超過此限制的請求參數將會被忽略。小於 0 的值表示沒有限制。如果未指定,將使用預設值 10000。請注意,FailedRequestFilter 篩選器 可用於拒絕超過限制的請求。

maxPostSize

容器 FORM URL 參數剖析將處理的 POST 的最大位元組大小。可透過將此屬性設定為小於 0 的值來停用限制。如果未指定,此屬性會設定為 2097152 (2 MiB)。請注意,FailedRequestFilter 可用於拒絕超過此限制的請求。

maxSavePostSize

容器在 FORM 或 CLIENT-CERT 驗證期間將儲存/緩衝的 POST 的最大位元組大小。對於這兩種驗證類型,POST 將在使用者驗證之前儲存/緩衝。對於 CLIENT-CERT 驗證,POST 會在 SSL 交握期間緩衝,並在處理請求時清空緩衝區。對於 FORM 驗證,POST 會在使用者重新導向至登入表單時儲存,並保留至使用者成功驗證或與驗證請求相關聯的階段逾期為止。可透過將此屬性設定為 -1 來停用限制。將屬性設定為 0 會在驗證期間停用 POST 資料的儲存。如果未指定,此屬性會設定為 4096 (4 KiB)。

parseBodyMethods

使用 application/x-www-form-urlencoded 的請求主體將會與 POST 相同地剖析為請求參數的 HTTP 方法的逗號分隔清單。這對於想要支援 PUT 請求的 POST 風格語意的 RESTful 應用程式很有用。請注意,除了 POST 之外的任何設定都會導致 Tomcat 以違反 Servlet 規格意圖的方式運作。根據 HTTP 規格,HTTP 方法 TRACE 在此明確禁止。預設值為 POST

port

連接器 將會建立伺服器 Socket 並等待傳入連線的 TCP 埠號。作業系統只會允許一個伺服器應用程式在特定 IP 位址上監聽特定埠號。如果使用特殊值 0 (零),Tomcat 會隨機選擇一個可用埠供此連接器使用。這通常只適用於嵌入式和測試應用程式。

協定

設定處理傳入流量的協定。若要設定 AJP 連接器,則必須指定此設定。如果未提供協定的值,則會設定 HTTP 連接器,而非 AJP 連接器。
AJP 連接器的標準協定值為 AJP/1.3,它使用基於 Java NIO 的連接器。
若要使用明確的協定,可以使用下列值
org.apache.coyote.ajp.AjpNioProtocol - 非封鎖 Java NIO 連接器。
org.apache.coyote.ajp.AjpNio2Protocol - 非封鎖 Java NIO2 連接器。
也可以使用自訂實作。
請查看我們的 連接器比較 圖表。

proxyName

如果這個 連接器 用於代理設定,請設定這個屬性來指定要傳回給 request.getServerName() 呼叫的伺服器名稱。請參閱 代理支援 以取得更多資訊。

proxyPort

如果這個 連接器 用於代理設定,請設定這個屬性來指定要傳回給 request.getServerPort() 呼叫的伺服器埠。請參閱 代理支援 以取得更多資訊。

redirectPort

如果這個 連接器 支援非 SSL 要求,且收到要求,而對應的 <security-constraint> 需要 SSL 傳輸,Catalina 會自動將要求重新導向到這裡指定的埠號。

rejectSuspiciousURIs

如果 URI 符合 Servlet 6.0 規格識別的可疑 URI 模式之一,這個 連接器 是否應該拒絕要求?預設值為 false

scheme

將這個屬性設定為您希望 request.getScheme() 呼叫傳回的協定名稱。例如,您可以將這個屬性設定為 SSL 連接器的「https」。預設值為「http」。

secure

如果您希望 request.isSecure() 呼叫傳回 true 給這個連接器收到的要求,請將這個屬性設定為 true。您會希望在 SSL 連接器或從 SSL 加速器(例如加密卡、SSL 設備甚至網路伺服器)接收資料的非 SSL 連接器上使用這個設定。預設值為 false

URIEncoding

這會指定在 %xx 解碼 URL 後,用於解碼 URI 位元組的字元編碼。預設值為 UTF-8

useBodyEncodingForURI

這會指定是否應將 contentType 中指定的編碼用於 URI 查詢參數,而不是使用 URIEncoding。此設定是為了與 Tomcat 4.1.x 相容,其中 contentType 中指定的編碼,或使用 Request.setCharacterEncoding 方法明確設定的編碼也用於 URL 中的參數。預設值為 false

注意事項:請參閱 HTTP 連接器 文件中關於此屬性的注意事項。

useIPVHosts

將此屬性設定為 true,以使 Tomcat 使用原生網路伺服器傳遞的 IP 位址,來決定要將要求傳送至哪個主機。預設值為 false

xpoweredBy

將此屬性設定為 true,以使 Tomcat 使用規範中建議的標頭,來宣告支援 Servlet 規範。預設值為 false

標準實作

若要使用 AJP,您必須指定 protocol 屬性(請參閱上方)。

標準 AJP 連接器(NIO 和 NIO2)除了上述常見的連接器屬性外,還支援下列屬性。

屬性 說明
acceptCount

maxConnections 已達時,作業系統提供的佇列中,用於接收連線要求的最大長度。作業系統可能會忽略此設定,並使用不同大小的佇列。當此佇列已滿時,作業系統可能會主動拒絕其他連線,或使這些連線逾時。預設值為 100。

acceptorThreadCount

用於接受連線的執行緒數目。在多 CPU 機器上增加此值,儘管您實際上永遠不需要超過 2。此外,對於大量非保持連線,您可能也需要增加此值。預設值為 1

acceptorThreadPriority

接收執行緒的優先順序。用於接受新連線的執行緒。預設值為 5java.lang.Thread.NORM_PRIORITY 常數的值)。有關此優先順序的意義的詳細資訊,請參閱 java.lang.Thread 類別的 JavaDoc。

address

對於具有多個 IP 位址的伺服器,此屬性會指定用於在指定埠上監聽的位址。預設情況下,連接器會在迴圈位址上監聽。除非 JVM 使用系統屬性另行設定,否則基於 Java 的連接器 (NIO、NIO2) 會在設定為 0.0.0.0:: 時,在 IPv4 和 IPv6 位址上監聽。

ajpFlush

布林值,可用於啟用或停用在發生明確快取時傳送 AJP 快取訊息至前端代理。預設值為 true
AJP 快取訊息是沒有主體內容的 SEND_BODY_CHUNK 封包。當收到此類封包時,例如 mod_jk 或 mod_proxy_ajp 等代理實作會將緩衝在 Web 伺服器中的資料快取至用戶端。將此設定為 false 可以減少 AJP 封包流量,但可能會延遲將封包傳送至用戶端。在回應的結尾,AJP 會始終快取至用戶端。

allowedRequestAttributesPattern

AJP 協定使用要求屬性從反向代理傳遞一些資訊至 AJP 連接器。這些屬性為

  • javax.servlet.request.cipher_suite
  • javax.servlet.request.key_size
  • javax.servlet.request.ssl_session
  • javax.servlet.request.X509Certificate
  • AJP_LOCAL_ADDR
  • AJP_REMOTE_PORT
  • AJP_SSL_PROTOCOL
  • JK_LB_ACTIVATION
  • CERT_ISSUER (僅限 IIS)
  • CERT_SUBJECT (僅限 IIS)
  • CERT_COOKIE (僅限 IIS)
  • HTTPS_SERVER_SUBJECT (僅限 IIS)
  • CERT_FLAGS (僅限 IIS)
  • HTTPS_SECRETKEYSIZE (僅限 IIS)
  • CERT_SERIALNUMBER (僅限 IIS)
  • HTTPS_SERVER_ISSUER (僅限 IIS)
  • HTTPS_KEYSIZE (僅限 IIS)

AJP 協定支援傳遞任意要求屬性。除非整個屬性名稱符合此正規表示式,否則包含任意要求屬性的要求會被拒絕,並傳回 403 回應。如果未指定,預設值為 null

bindOnInit

控制連接器使用的插槽何時繫結。如果設定為 true,則會在連接器啟動時繫結,並在連接器銷毀時解除繫結。如果設定為 false,則會在連接器啟動時繫結,並在連接器停止時解除繫結。如果未指定,預設值為 true

clientCertProvider

當以非 java.security.cert.X509Certificate 執行個體形式提供用戶端憑證資訊時,需要在使用前轉換,而此屬性控制用於執行轉換的 JSSE 提供者。如果未指定,將使用預設提供者。

connectionLinger

Connector 使用的 Socket 在關閉時會延遲的秒數。預設值為 -1,會停用 Socket 延遲。

connectionTimeout

Connector 在接受連線後會等待請求 URI 列顯示的毫秒數。AJP 協定連接器的預設值為 -1(即無限)。

executor

Executor 元素中名稱的參照。如果設定此屬性,且已存在指定名稱的執行器,則連接器會使用執行器,且所有其他執行緒屬性都會被忽略。請注意,如果未為連接器指定共用執行器,則連接器會使用私有內部執行器來提供執行緒池。

executorTerminationTimeoutMillis

在繼續停止連接器的程序之前,私有內部執行器會等待請求處理執行緒終止的時間。如果未設定,預設值為 5000(5 秒)。

keepAliveTimeout

Connector 在關閉連線前會等待下一個 AJP 請求的毫秒數。預設值是使用已為 connectionTimeout 屬性設定的值。

maxConnections

伺服器在任何時間點會接受和處理的最大連線數。當達到此數目時,伺服器會接受,但不會處理,另一個連線。此額外連線會被封鎖,直到正在處理的連線數低於 maxConnections,此時伺服器會開始再次接受和處理新連線。請注意,一旦達到限制,作業系統仍可能根據 acceptCount 設定接受連線。預設值為 8192

僅限於 NIO/NIO2,將值設定為 -1 會停用 maxConnections 功能,且不會計算連線。

maxHeaderCount

容器允許的請求中標頭的最大數目。包含比指定限制更多標頭的請求會被拒絕。小於 0 的值表示沒有限制。如果未指定,會使用預設值 100。

maxThreads

連接器建立的請求處理執行緒之最大數目,因此決定可同時處理的最大請求數目。若未指定,此屬性設為 200。如果執行器與此連接器關聯,此屬性將被忽略,因為連接器將使用執行器而非內部執行緒池執行工作。請注意,如果執行器已設定,此屬性設定的任何值都將正確記錄,但會報告為 -1(例如透過 JMX),以清楚說明未加以使用。

minSpareThreads

始終保持執行中的執行緒之最小數目。這包括主動和閒置執行緒。若未指定,將使用預設值 10。如果執行器與此連接器關聯,此屬性將被忽略,因為連接器將使用執行器而非內部執行緒池執行工作。請注意,如果執行器已設定,此屬性設定的任何值都將正確記錄,但會報告為 -1(例如透過 JMX),以清楚說明未加以使用。

packetSize

此屬性設定 AJP 封包在位元組中的最大大小。最大值為 65536。它應與為 mod_jk 設定的 max_packet_size 指令相同。通常不需要變更最大封包大小。在傳送憑證或憑證鏈時,已報告預設值有問題。預設值為 8192。如果設為小於 8192,設定將被忽略,並使用預設值 8192。

processorCache

通訊協定處理常式快取處理器物件以加速效能。此設定決定快取這些物件的數量。-1 表示無限制,預設值為 200。如果未使用 Servlet 3.0 非同步處理,建議使用與 maxThreads 設定相同的預設值。如果使用 Servlet 3.0 非同步處理,建議使用 maxThreads 和預期的最大同時請求數目(同步和非同步)中較大的值。

secret

只有來自具有此密碼關鍵字的作業員的請求才會被接受。預設值為 null。此屬性必須指定為非空值、非零長度值,除非 secretRequired 明確設定為 false。如果此屬性設定為非空值、非零長度值,作業員必須提供相符的值,否則請求將被拒絕,與 secretRequired 的設定無關。

secretRequired

如果此屬性為 true,AJP 連接器只有在 secret 屬性設定為非空值、非零長度值時才會啟動。此屬性只控制是否需要指定 secret 屬性才能讓 AJP 連接器啟動。它控制是否需要作業員提供密碼。預設值為 true。此屬性只有在連接器用於可信賴網路時才應設為 false

tcpNoDelay

如果設為 true,將在伺服器 Socket 上設定 TCP_NO_DELAY 選項,這在大部分情況下都能提升效能。預設設為 true

threadPriority

JVM 內部請求處理執行緒的優先順序。預設值為 5java.lang.Thread.NORM_PRIORITY 常數的值)。有關此優先順序的詳細資訊,請參閱 java.lang.Thread 類別的 JavaDoc。如果此連接器關聯至執行緒,則會忽略此屬性,因為連接器會使用執行緒而非內部執行緒池來執行任務。請注意,如果已設定執行緒,則會正確記錄此屬性設定的任何值,但會回報為 -1(例如透過 JMX),以清楚說明未加以使用。

throwOnFailure

如果連接器在生命週期轉換期間遇到例外狀況,是否應重新擲回或記錄例外狀況?如果未指定,則會使用預設值 false。請注意,預設值可透過 org.apache.catalina.startup.EXIT_ON_INIT_FAILURE 系統屬性來變更。

tomcatAuthentication

如果設為 true,驗證會在 Tomcat 中執行。否則,經過驗證的主體會從原生網路伺服器傳播,並用於 Tomcat 中的授權。

網路伺服器必須將使用者主體 (使用者名稱) 傳送為命名為 REMOTE_USER 的請求 屬性

請注意,此主體不會關聯任何角色。

預設值為 true。如果將 tomcatAuthorization 設為 true,則此屬性不會產生任何效果。

tomcatAuthorization

如果設為 true,經過驗證的主體會從原生網路伺服器傳播,並在 Tomcat 中視為已驗證。如果網路應用程式有一個或多個安全性約束,則授權會由 Tomcat 執行,並將角色指派給經過驗證的主體。如果請求的適當 Tomcat Realm 未辨識提供的使用者名稱,系統仍會建立主體,但它不會有任何角色。預設值為 false

useVirtualThreads

(布林)使用此屬性來啟用或停用使用內部執行緒的虛擬執行緒。如果此連接器關聯至執行緒,則會忽略此屬性。預設值為 false

Java TCP socket 屬性

除了上面列出的常見連接器和 HTTP 屬性之外,NIO 和 NIO2 實作還支援下列 Java TCP socket 屬性。

屬性 說明
socket.rxBufSize

(int)socket 接收緩衝區 (SO_RCVBUF) 大小(以位元組為單位)。如果未設定,則使用 JVM 預設值。

socket.txBufSize

(int)socket 傳送緩衝區 (SO_SNDBUF) 大小(以位元組為單位)。如果未設定,則使用 JVM 預設值。如果明確設定此值,則應小心。已觀察到某些 JVM 在值小於 ~8k 時效能非常差。

socket.tcpNoDelay

(bool)這等於標準屬性 tcpNoDelay

socket.soKeepAlive

(bool)socket 保持連線設定 (SO_KEEPALIVE) 的布林值。如果未設定,則使用 JVM 預設值。

socket.ooBInline

(bool)socket OOBINLINE 設定的布林值。如果未設定,則使用 JVM 預設值。

socket.soReuseAddress

(bool)socket 重用位址選項 (SO_REUSEADDR) 的布林值。如果未設定,則使用 JVM 預設值。

socket.soLingerOn

(bool)socket 延遲選項 (SO_LINGER) 的布林值。標準屬性 connectionLinger 大於或等於 0 的值等於將此設定為 true。標準屬性 connectionLinger 小於 0 的值等於將此設定為 false。此屬性和 soLingerTime 都必須設定,否則將對兩者使用 JVM 預設值。

socket.soLingerTime

(int)socket 延遲選項 (SO_LINGER) 的值(以秒為單位)。這等於標準屬性 connectionLinger。此屬性和 soLingerOn 都必須設定,否則將對兩者使用 JVM 預設值。

socket.soTimeout

這等於標準屬性 connectionTimeout

socket.performanceConnectionTime

(int)效能設定的第一個值。請參閱 Socket 效能選項 所有三個效能屬性都必須設定,否則將對所有三個屬性使用 JVM 預設值。

socket.performanceLatency

(int)效能設定的第二個值。請參閱 Socket 效能選項 所有三個效能屬性都必須設定,否則將對所有三個屬性使用 JVM 預設值。

socket.performanceBandwidth

(int)效能設定的第三個值。請參閱 Socket 效能選項 所有三個效能屬性都必須設定,否則將對所有三個屬性使用 JVM 預設值。

socket.unlockTimeout

(int)socket 解鎖的逾時時間。當連接器停止時,它會嘗試透過對自己開啟連接器來釋放接受器執行緒。預設值為 250,單位為毫秒

NIO 專屬組態

下列屬性是 NIO 連接器專屬的。

屬性 說明
socket.directBuffer

(布林值)布林值,用於判斷是否使用直接 ByteBuffers 或 java 對應的 ByteBuffers。預設為 false
使用直接緩衝區時,請務必為直接記憶體空間分配適當的記憶體量。在 Sun 的 JDK 中,這類似於 -XX:MaxDirectMemorySize=256m

socket.appReadBufSize

(int)在 Tomcat 中開啟的每個連線都會與一個讀取 ByteBuffer 關聯。此屬性控制此緩衝區的大小。預設情況下,此讀取緩衝區大小為 8192 位元組。對於較低的並行性,您可以將其增加以緩衝更多資料。對於大量保持連線,請減少此數字或增加堆積大小。

socket.appWriteBufSize

(int)在 Tomcat 中開啟的每個連線都會與一個寫入 ByteBuffer 關聯。此屬性控制此緩衝區的大小。預設情況下,此寫入緩衝區大小為 8192 位元組。對於低並行性,您可以將其增加以緩衝更多回應資料。對於大量保持連線,請減少此數字或增加堆積大小。
此處的預設值相當低,如果您處理的並行連線數不到數萬個,則應將其提高。

socket.bufferPool

(int)NIO 連接器使用一個稱為 NioChannel 的類別,其中包含連結到 socket 的元素。為減少垃圾回收,NIO 連接器會快取這些通道物件。此值指定此快取的大小。預設值為 500,表示快取將包含 500 個 NioChannel 物件。其他值包括 -1 表示無限快取,以及 0 表示無快取。

socket.bufferPoolSize

(int)NioChannel 池也可以基於大小,而不是基於使用的物件。大小計算如下:
NioChannel 緩衝區大小 = 讀取緩衝區大小 + 寫入緩衝區大小
SecureNioChannel 緩衝區大小 = 應用程式讀取緩衝區大小 + 應用程式寫入緩衝區大小 + 網路讀取緩衝區大小 + 網路寫入緩衝區大小
此值以位元組為單位,預設值為 1024*1024*100 (100 MiB)。

socket.processorCache

(int)Tomcat 會快取 SocketProcessor 物件以減少垃圾回收。整數值指定快取中最多保留多少個物件。預設值為 0。其他值包括 -1 表示無限快取,以及 0 表示無快取。

socket.eventCache

(int)Tomcat 會快取 PollerEvent 物件以減少垃圾回收。整數值指定快取中最多保留多少物件。預設值為 0。其他值包括無限制快取的 -1 和無快取的 0

NIO2 專屬組態

下列屬性專屬於 NIO2 連接器。

屬性 說明
useCaches

(bool)使用此屬性啟用或停用物件快取以減少產生的 GC 物件數量。預設值為 false

socket.directBuffer

(布林值)布林值,用於判斷是否使用直接 ByteBuffers 或 java 對應的 ByteBuffers。預設為 false
使用直接緩衝區時,請務必為直接記憶體空間分配適當的記憶體量。在 Sun 的 JDK 中,這類似於 -XX:MaxDirectMemorySize=256m

socket.appReadBufSize

(int)在 Tomcat 中開啟的每個連線都會與一個讀取 ByteBuffer 關聯。此屬性控制此緩衝區的大小。預設情況下,此讀取緩衝區大小為 8192 位元組。對於較低的並行性,您可以將其增加以緩衝更多資料。對於大量保持連線,請減少此數字或增加堆積大小。

socket.appWriteBufSize

(int)在 Tomcat 中開啟的每個連線都會與一個寫入 ByteBuffer 關聯。此屬性控制此緩衝區的大小。預設情況下,此寫入緩衝區大小為 8192 位元組。對於低並行性,您可以將其增加以緩衝更多回應資料。對於大量保持連線,請減少此數字或增加堆積大小。
此處的預設值相當低,如果您處理的並行連線數不到數萬個,則應將其提高。

socket.bufferPoolSize

(int)NIO2 連接器使用稱為 Nio2Channel 的類別,其中包含連結到 socket 的元素。為了減少垃圾回收,NIO 連接器會快取這些通道物件。此值指定此快取的大小。預設值為 500,表示快取將保留 500 個 Nio2Channel 物件。其他值包括無限制快取的 -1 和無快取的 0

socket.processorCache

(int)Tomcat 會快取 SocketProcessor 物件以減少垃圾回收。整數值指定快取中最多保留多少個物件。預設值為 0。其他值包括 -1 表示無限快取,以及 0 表示無快取。

巢狀元件

目前沒有。

特殊功能

代理支援

當 Tomcat 在代理伺服器後方執行時,可以使用 proxyNameproxyPort 屬性。這些屬性會修改傳回給呼叫 request.getServerName()request.getServerPort() 方法的 Web 應用程式的值,這些方法通常用於建構重新導向的絕對 URL。如果不設定這些屬性,傳回的值會反映接收代理伺服器連線的伺服器名稱和埠,而不是客戶端將原始要求導向的伺服器名稱和埠。

如需更多資訊,請參閱 代理支援操作指南

連接器比較

以下是一個小圖表,說明連接器的差異。

Java Nio 連接器
NIO
Java Nio2 連接器
NIO2
類別名稱 AjpNioProtocol AjpNio2Protocol
Tomcat 版本 7.x 以上 8.x 以上
支援輪詢
輪詢大小 maxConnections maxConnections
讀取要求標頭 封鎖 封鎖
讀取要求主體 封鎖 封鎖
寫入回應標頭和主體 封鎖 封鎖
等待下一個要求 非封鎖 非封鎖
最大連線數 maxConnections maxConnections