由於tomcat的html和圖片解析功能相對其他服務器如apche等較弱,所以,一般都是集成起來使用,只有jsp和servlet服務交由tomcat處理,而tomcat和其他服務器的集成,就是通過ajp協議來完成的。
官方介紹:
http://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html
AJP協議
AJP13是定向包協議。因為性能原因,使用二進制格式來傳輸可讀性文本。WEB服務器通過TCP連接和SERVLET容器連接。為了減少進程生成socket的花費,WEB服務器和SERVLET容器之間嘗試保持持久性的TCP連接,對多個請求/回復循環重用一個連接。一旦連接分配給一個特定的請求,在請求處理循環結束之前不會在分配。換句話說,在連接上,請求不是多元的。這個是連接兩端的編碼變得容易,雖然這導致在一時刻會有很多連接。一旦WEB服務器打開了一個到SERVLET容器的連接,連接處於下面的狀態:
◆ 空閑
這個連接上沒有處理的請求。
◆ 已分派
連接正在處理特定的請求。
一旦一個連接被分配給一個特定的請求,在連接上發送的基本請求信息是高度壓縮的。在這點,SERVLET容器大概准備開始處理請求,當它處理的時候,它能發回下面的信息給WEB服務器:
◆ SEND_HEADERS
發送一組頭到瀏覽器。
◆ SEND_BODY_CHUNK
發送一塊主體數據到瀏覽器。
◆ GET_BODY_CHUNK
從請求獲得下一個數據如果還沒有全部傳輸完,如果請求內容的包長度非常大或者長度不確定,這是非常必要的。例如上載文件。注意這和HTTP的塊傳輸沒有關聯。
◆ END_RESPONSE
結束請求處理循環。
2. AJP Connector
The AJP Connector element represents a Connector component that communicates with a web connector via the AJP protocol.
AJP連接器可以通過AJP協議和一個web容器進行交互
This is used for cases where you wish to invisibly integrate Tomcat into an existing (or new)Apache installation, and you want Apache to handle the static content contained in the web application, and/or utilize Apache’s SSL processing.
當你想讓Apache和Tomcat結合並且你想讓Apache處理靜態內容的時候用AJP,或者你想利用Apache的SSL處理能力時
This connector supports load balancing when used in conjunction with the jvmRoute attribute of the Engine.
特殊於HTTP Connector,AJP還可以與engine元素上的jvmRoute結合使用來實現負載均衡功能
我看的tomcat8.0.30的版本的AJP連接器支持JK 1.2.X和mode_proxy(on Apache httpd 2.x)兩種方式與其他web容器交互(一般使用Apache HTTP Server)
---------------------