• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Tomcat開發技術之與HTTP服務器的集成

    發布: 2007-6-22 07:38 | 作者:   | 來源:   | 查看: 17次 | 進入軟件測試論壇討論

    領測軟件測試網

       
      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服務器的工作模式的概念可以參考本書1.4節。
      
      本章首先討論Tomcat與HTTP服務器集成的一般原理,然后介紹Tomcat與Apache以及IIS集成的詳細步驟。
      
      22.1 Tomcat與HTTP服務器集成的原理
      
      Tomcat服務器通過Connector連接器組件與客戶程序建立連接,Connector組件負責接收客戶的請求,以及把Tomcat服務器的響應結果發送給客戶。默認情況下,Tomcat在server.xml中配置了兩種連接器:
      
      <!-- Define a non-SSL Coyote HTTP/1.1
      Connector on port 8080 -->
      <Connector port="8080"
      maxThreads="150"
      minSpareThreads="25"
      maxSpareThreads="75"
      enableLookups="false"
      redirectPort="8443"
      acceptCount="100"
      debug="0"
      connectionTimeout="20000"
      disableUploadTimeout="true" />
      
      <!-- Define a Coyote/JK2 AJP 1.3
      Connector on port 8009 -->
      <Connector port="8009"
      enableLookups="false"
      redirectPort="8443" debug="0"
      protocol="AJP/1.3" />
      
      第一個連接器監聽8080端口,負責建立HTTP連接。在通過瀏覽器訪問Tomcat服務器的Web應用時,使用的就是這個連接器。
      
      第二個連接器監聽8009端口,負責和其他的HTTP服務器建立連接。在把Tomcat與其他HTTP服務器集成時,就需要用到這個連接器。
      
      Web客戶訪問Tomcat服務器上JSP組件的兩種方式如圖22-1所示。
       Tomcat<STRONG><A href=開發技術之與HTTP服務器的集成(圖一)" />
      圖22-1 Web客戶訪問Tomcat服務器上的JSP組件的兩種方式
      
      在圖22-1中,Web客戶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服務器之間是如何通信的。
      
      22.1.1 JK插件
      
      Tomcat提供了專門的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
      
      22.1.2 AJP協議
      
      AJP是為Tomcat與HTTP服務器之間通信而定制的協議,能提供較高的通信速度和效率。在配置Tomcat與HTTP服務器集成中,讀者可以不必關心AJP協議的細節。關于AJP的知識也可以參考網址:
      
      http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/doc/common/AJPv13.html
      
      22.2 在Windows下Tomcat與Apache服務器集成
      
      Apache HTTP服務器是Apache軟件組織提供的開放源代碼軟件,它是一個非常優秀的專業的Web服務器,為網絡管理員提供了豐富多彩的Web管理功能,包括目錄索引、目錄別名、內容協商、可配置的HTTP錯誤報告、CGI程序的SetUID執行、子進程資源管理、服務器端圖像映射、重寫URL、URL拼寫檢查以及聯機手冊等。
      
      Apache HTTP服務器本身沒有提供Servlet/JSP容器。因此,在實際應用中,把Tomcat與Apache集成,可以建立具有實用價值的商業化的Web平臺。在Windows NT/2000下Tomcat與Apache服務器集成需要準備的軟件參見表22-1。
      
      表22-1 在Windows NT/2000下Tomcat與Apache服務器集成需要準備的軟件
       Tomcat開發技術之與HTTP服務器的集成(圖二)
      1、安裝Apache HTTP服務器
      
      運行apache_2.0.47-win32-x86-no_ssl.msi,就啟動了Apache HTTP服務器的安裝程序,只要按默認設置進行安裝即可。如果安裝成功,會自動在Windows中加入Apache HTTP服務,如圖22-2所示。
       Tomcat開發技術之與HTTP服務器的集成(圖三)
      圖22-2 加入到Windows服務中的Apache服務
      
      假定Apache的根目錄為,在其conf子目錄下有一個配置文件httpd.conf。如果Apache安裝在本機,并且采用默認的80端口作為HTTP端口,在httpd.conf文件中會看到如下屬性:
      
      Listen 80
      ServerName localhost:80
      
      在操作系統的【開始】→【程序】→【Apache HTTP Server 2.0.47】→【Control Apache Server】菜單中,提供了重啟(Restart)、啟動(Start)和關閉(Stop)Apache服務器的子菜單。
      
      應該確保80端口沒有被占用,否則Apache服務器無法啟動。Apache服務器啟動后,就可以通過訪問Apache的測試頁來確定是否安裝成功。訪問http://localhost,如果出現如圖22-3所示的網頁,就說明Apache已經安裝成功了。
       Tomcat開發技術之與HTTP服務器的集成(圖四)
      圖22-3 Apache服務器的測試網頁
      
      2、在Apache中加入JK插件
      
      在Apache中加入JK插件,只要把mod_jk_2.0.46.dll拷貝到/modules目錄下即可。
      
      3、創建workers.properties文件
      
      workers.properties文件用于配置Tomcat的信息,它的存放位置為 /conf/workers.properties。在本書配套光盤的sourcecode/chapter22/windows_apache目錄下提供了workers.properties文件,它的內容如下("#"后面為注釋信息):
      
      workers.tomcat_home=C:\jakarta-tomcat
      #讓mod_jk模塊知道Tomcat
      workers.java_home=C:\j2sdk1.4.2
      #讓mod_jk模塊知道j2sdk
      ps=#指定文件路徑分割符
      worker.list=worker1
      worker.worker1.port=8009
      #工作端口,若沒占用則不用修改
      worker.worker1.host=localhost
      #Tomcat服務器的地址
      worker.worker1.type=ajp13
      #類型
      worker.worker1.lbfactor=1
      #負載平衡因數
      
      以上文件中的屬性描述參見表22-2。
      
      表22-2 workers.properties文件的屬性
       Tomcat開發技術之與HTTP服務器的集成(圖五)
      4、修改Apache的配置文件httpd.conf
      
      打開/conf/httpd.conf文件,在其末尾加入以下內容:
      
      # Using mod_jk2.dll to
      redirect dynamic calls to Tomcat
      LoadModule jk_module
      modules\mod_jk_2.0.46.dll
      JkWorkersFile
      "conf\workers.properties"
      JkLogFile "logs\mod_jk2.log"
      JkLogLevel debug
      JkMount /*.jsp worker1
      JkMount /helloapp/* worker1
      
      在本書配套光盤的sourcecode/chapter22/windows_apache/httpd_modify.conf文件中提供了以上內容,它指示Apache服務器加載JK插件,并且為JK插件設置相關屬性,這些屬性的描述參見表22-3。
      
      表22-3 JK插件的相關屬性
      Tomcat開發技術之與HTTP服務器的集成(圖六)
      JkMount用來指定URL映射信息,"JkMount /*.jsp worker1"表示"/*.jsp"形式的URL都由worker1代表的Tomcat服務器來處理;"JkMount /helloapp/* worker1"表示訪問helloapp應用的URL都由worker1來處理。
      
      5、測試配置
      
      重啟Tomcat服務器和Apache服務器,通過瀏覽器訪問http://localhost/index.jsp,如果出現Tomcat的默認主頁,說明配置已經成功。此外,如果在Tomcat服務器上已經發布了helloapp應用,可以訪問http://localhost/helloapp/index.htm,如果正常返回helloapp應用的index.htm網頁,說明配置已經成功。
      
      如果配置有誤,可以查看JK插件生成的日志信息,它有助于查找錯誤原因。在Apache的配置文件httpd.conf中設定該日志文件的存放位置為/logs/mod_jk2.log
      
      6、Apache與多個Tomcat服務器集成時的負載平衡
      
      在實際應用中,如果網站的訪問量非常大,為了提高訪問速度,可以將多個Tomcat服務器與Apache集成,讓它們共同分擔運行Servlet/JSP組件的任務。 JK插件的loadbalancer(負載平衡器)負責根據在workers.properties文件中預先配置的lbfactor(負載平衡因數)為這些Tomcat服務器分配工作負荷,實現負載平衡。
      
      假定Apache和兩個Tomcat服務器集成,一個Tomcat服務器和Apache運行在同一臺機器上,使用的JK端口為8

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>