Apache與Tomcat三種連接方式JK、http_proxy、ajp_proxy


為什么要讓Apache與Tomcat之間進行連接?事實上Tomcat本身已經提供了HTTP服務,該服務默認的端口是8080,也可以改為80。既然Tomcat本身已經可以提供動態加靜態web服務,為什么還要引入Apache或者其他的一些專門的HTTP服務器呢?原因是tomcat對靜態頁面並發處理能力較差,通過與apache鏈接后可以實現:提升對靜態文件的處理性能、實現負載均衡集群、無縫的升級應用程序。

JK

這是最常見的方式,你可以在網上找到很多關於配置JK的網頁,當然最全的還是其官方所提供的文檔。JK本身有兩個版本分別是1和2,而版本2不是最新版,是一個分支,早已經廢棄了,以后不再有新版本的推出了,所以建議你采用版本1。

JK是通過AJP協議與Tomcat服務器進行通訊的,Tomcat默認的AJPConnector的端口是8009。JK本身提供了一個監控以及管理的頁面jkstatus,通過jkstatus可以監控JK目前的工作狀態以及對到tomcat的連接進行設置。

AJP(ApacheJServProtocol)是定向包(面向包)協議。采用二進制形式代替文本形式,以提高性能。WEB服務器通過TCP連接SERVLET容器。WebServer一般維持和WebContainer的多個TCPConnecions,即TCP連接池,多個request/respons循環重用同一個Connection。但是當Connection被分配(Assigned)到某個請求時,該請求完成之前,其他請求不得使用該連接。

http_proxy

這是利用Apache自帶的mod_proxy模塊使用代理技術來連接Tomcat。在配置之前請確保是否使用的是2.2.x版本的Apache服務器。因為2.2.x版本對這個模塊進行了重寫,大大的增強了其功能和穩定性。http_proxy模式是基於HTTP協議的代理,因此它要求Tomcat必須提供HTTP服務,也就是說必須啟用Tomcat的HTTP Connector。

ajp_proxy

ajp_proxy連接方式也是由mod_proxy模塊所提供的功能。連接的是Tomcat的AJP Connector所在的端口。

三者比較

相對於JK的連接方式,http_proxy和ajp_proxy在配置上是比較簡單的,靈活性方面也一點都不遜色。但就穩定性而言就不像JK這樣久經考驗,因此,如果是應用於關鍵的互聯網網站,還是建議采用JK的連接方式。


免責聲明!

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



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