2010年9月11日 星期六

[Linux 小學堂] Tomcat 與 Apache HTTP 服務器整合簡介

Apache 的本地代碼模塊 
Apache Web服務器與Tomcat集成是透過添加到兩端的專用軟件模塊來完成. 這個新的Protocol稱為AJP. 

1. 在Apache Web 服務器端, 涉及的軟件模塊是 mod_jk 或 mod_proxy. 它們都是C/C++編寫的本地代碼擴展模塊.
2. Tomcat 服務器端的軟件模塊是使用Java編寫的專用AJP 連接器.


下圖顯示Tomcat 使用Apache 的mod_jk 或 mod_proxy本地代碼模塊. 所有請求首先到Apache Web服務器. Apache Web服務器並接受處理所有靜態資源請求, 例如靜態Html或靜態圖像. 在mod_jk或mod_proxy的幫助下, Apache Web服務器傳遞任何JSP或Server組件請求到Tomcat服務器實例. 通過使用AJP協議在網路上發送請求實現請求的轉寄. 
 

可能有一個或多個連接網絡的Tomcat實例服務這些客戶端請求. 其中每個Tomcat實例都有一個配置的AJP連接器. AJP連接器會Monitor Apahce Web服務器轉寄的LAN 網絡請求. 此AJP連接器接收, 處理請求並產生適當響應. 最後Tomcat 6通過AJP連接器將該響應返送到Apache Web服務器等待的本地代碼模塊. Apache Web服務器一旦收到該響應, 他依次將響應發送到客戶端. 
Apache Web 服務器的本地模塊與Tomcat 6上的AJP連接器通過AJP協議通訊. AJP協議是源請求和一個或多個這些請求的處理機制 (Tomcat 6服務器集群) 之間 (Apache Web 服務器) 最優的請求/轉移協議. (Tomcat 6終端的AJP連接器是100%的Java實現, 它做為標準Tomcat 6發布版本的一部份) 

Apache JServ協議 
AJP是一個封包導向, 基於TCP/IP的協議. 它在Apache 與運行的Tomcat 實例間提供通訊Channel. Tomcat 6支持 AJP 1.3. AJP 1.3式久經測試的版本. 它的一些特性如下: 
* 在高速網路上良好性能.
* 支持SSL, 加密與客戶端認證.
* 支持轉發請求到多個Tomcat 6服務器集群.

減少AJP連接的方法之一就是重複使用這樣的Web服務器, 因為它已經打開與Tomcat的TCP層連接. 這節省了為每個請求打開新的socket連接的開銷. 

AJP連接器 
Tomcat為AJP 1.3協議題供做為Java類的AJP連接器實現, 它包含在Tomcat 發布版本中. 
$CATALINA_HOME/conf/server.xml 配置文件包含以下條目來定義連接器: 

protocol="AJP/1.3" redirectPort="8443"/>

protocol="AJP/1.3" 屬性指示了Tomcat配置的AJP連接器. 在Tomcat服務器實例上使用此連接器監聽互聯網中由Apache Web服務器發送, 進入的AJP請求. 

延伸閱讀: 
了解Tomcat Worker

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...