Tomcat與其他HTTP服務器集成
?? ?Tomcat最主要的功能是提供Servlet/JSP容器,盡管它也可以作為獨立的
Java
?Web
服務器
,它在對靜態資源(如HTML文件或圖像文件)的處理速度,以及提供的Web
服務器
管理功能方面都不如其他專業的HTTP服務器,如IIS和Apache服務器。
因此在實際應用中,常常把Tomcat與其他HTTP服務器集成。對于不支持Servlet/JSP的HTTP服務器,可以通過Tomcat服務器來運行Servlet/JSP組件。
當Tomcat與其他HTTP服務器集成時,Tomcat服務器的工作模式通常為進程外的Servlet容器,Tomcat服務器與其他HTTP服務器之間通過專門的插件來通信。
Tomcat與HTTP服務器集成的原理
?? ? ?? Tomcat服務器通過Connector連接器組件與客戶程序建立連接,Connector組件負責接收客戶的請求,以及把Tomcat服務器的響應結果發送給客戶。默認情況下,Tomcat在server.xml中配置了兩種連接器:
?
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080--> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8843"/> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
?
? 第一個連接器監聽8080端口,負責建立HTTP連接。在通過瀏覽器訪問Tomcat服務器的Web應用時,使用的就是這個連接器。
第二個連接器監聽8009端口,負責和其他的HTTP服務器建立連接。在把Tomcat與其他HTTP服務器集成時,就需要用到這個連接器。
Web客戶訪問Tomcat服務器上JSP組件的兩種方式如下圖所示。
上圖中,W eb客戶1直接訪問Tomcat服務器上的JSP組件,他訪問的URL為http://localhost:8080/index.jsp。Web客戶2通過HTTP服務器訪問Tomcat服務器上的JSP組件。假定HTTP服務器使用的HTTP端口為默認的80端口,那么Web客戶2訪問的URL為http://localhost:80/index.jsp 或者 http://localhost/index.jsp。
下面,介紹Tomcat與HTTP服務器之間是如何通信的。
JK插件
T omcat提供了專門的JK插件來負責Tomcat和HTTP服務器的通信。應該把JK插件安置在對方的HTTP服務器上。當HTTP服務器接收到客戶請求時,它會通過JK插件來過濾URL,JK插件根據預先配置好的URL映射信息,決定是否要把客戶請求轉發給Tomcat服務器處理。
假定在預先配置好的URL映射信息中,所有"/*.jsp"形式的URL都由Tomcat服務器來處理,那么在圖22-1的例子中,JK插件將把客戶請求轉發給Tomcat服務器,Tomcat服務器于是運行index.jsp,然后把響應結果傳給HTTP服務器,HTTP服務器再把響應結果傳給Web客戶2。
對于不同的HTTP服務器,Tomcat提供了不同的JK插件的實現模塊。本章將用到以下JK插件:
與
Windows
下的Apache HTTP服務器集成:mod_jk_2.0.46.dll
與Linux(RedHet)下的Apache HTTP服務器集成:mod_jk.so-ap2.0.46-rh72..46-rh72
與IIS服務器集成:isapi_redirect.dll
?
AJP 協議
AJP是為Tomcat與HTTP服務器之間通信而定制的
協議
,能提供較高的通信速度和效率。在配置Tomcat與HTTP服務器集成中,讀者可以不必關心AJP
協議
的細節。關于AJP的知識也可以參考網址:
http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/doc/common/AJPv13.html
?
在 Windows 下Tomcat與Apache服務器集成
包括了五個步驟,這里不細說,只描述其步驟名稱。
?
- 安裝Apache服務器。
- 在Apache服務器中加入JK插件。
- 創建workers.properties文件。
- 修改Apache服務器的配置文件httpd.conf。
- 測試配置。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
