TOMCAT IIS 整合

1.  參照 http://wenku.baidu.com/link?url=HWlz8IFgLo8efSWvA2t0FJGLpRtr44fKN8E7U3NLZCxK9voB1uOH6l3PC45bHRGrnpMZIFkkoOdMsLWtoHp0zuXGWI88CMSLTLk0ni5u4Mi 進行操作後,

輸入 localhost 報錯“ 調用 GetFilterVersion 失敗,在 ISAPI 篩選器  上 ”

解決辦法: 開始 -> 運行 -> inetmgr -> 應用程序池 -> 找到 我的網站對象的 程序池 -> 右鍵 -> 高級設置 -> 啓用32位應用程序 由 false 改爲 true

參照以上地址,沒有整合成功~!!!!!!!!!!!!!!!!!!!!!!!!!

2. 下面又找了一篇文檔,成功了!!!

地址:http://blog.csdn.net/liuyi1985/article/details/4045031

假設主機域名爲:www.abc.com(也可以是localhost) 

需求一:假如${TOMCAT_HOME}/webapps下有一個名爲jsp的web目錄(或者jsp.war),我們想以http://www.abc.com/jsp訪問jsp項目 

步驟1:
下載isapi_redirect-版本號.dll文件作爲IIS與TOMCAT的接口,我下載的是isapi_redirect-1.2.27.dll
下載地址:http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/
然後把該文件放入${TOMCAT_HOME}/conf下 

步驟2:
建立如下注冊表文件並執行
 

[c-sharp] view plaincopy
  1. Windows Registry Editor Version 5.00  
  2. [HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Jakarta Isapi Redirector/1.0]  
  3. "log_file"="D://Software//apache-tomcat-6.0.18//logs"  
  4. "log_level"="debug"  
  5. "worker_file"="D://Software//apache-tomcat-6.0.18//conf//workers.properties"  
  6. "worker_mount_file"="D://Software//apache-tomcat-6.0.18//conf//uriworkermap.properties"  
  7. "tomcat_start"="D://Software//apache-tomcat-6.0.18//bin//tomcat.bat start"  
  8. "tomcat_stop"="D://Software//apache-tomcat-6.0.18//bin//tomcat.bat stop"  
  9. "extension_uri"="/jakarta/isapi_redirect-1.2.27.dll"  

注意修改與tomcat相關的路徑(在我的系統中,tomcat安裝目錄爲“D:/Software/apache-tomcat-6.0.18”) 

步驟3:
在tomcat/conf下建立兩個文件 
文件1:workers.properties

 

[c-sharp] view plaincopy
  1. # 工作站的名稱任意,但須注意前後一致,多個工作站以“,”分割  
  2. worker.list=ajp13w   
  3.  
  4. # 工作站的類型:ajp13是IIS與Tomcat通訊協議的名稱  
  5. worker.ajp13w.type=ajp13   
  6.  
  7. # 注意此處的host需要與主機或者設置域名的名稱一致  
  8. worker.ajp13w.host=www.abc.com  
  9. # worker.ajp13w.host=localhost   
  10.  
  11. # ajp13協議的通訊端口  
  12. worker.ajp13w.port=8009   
  13.  
  14. # 負載因子  
  15. worker.worker1.lbfactor=1  


文件2:uriworkermap.properties
 

[c-sharp] view plaincopy
  1. # 當前域名下上下文路徑爲jsp的請求,轉發給ajp13w工作站處理  
  2. /jsp/*=ajp13w  
  3. /jsp=ajp13w  
  4.  
  5. # 當前域名下的所有請求都轉發給ajp13w工作站處理  
  6. # /*=ajp13w  
  7.  
  8. # 當前域名下,所有.jsp的請求都轉發給ajp13w工作站處理  
  9. # /*.jsp  
  10.  
  11. # 當前域名下,除了.html的請求,其他都轉發給ajp13w工作站處理  
  12. # !/*.html  


步驟4:
在IIS管理器中的“ISAPI和CGI限制”裏面右鍵添加isapi_redirect-1.2.27.dll,並設定“允許執行擴展路徑”,描述名可取jakarta 

步驟5:
在Default Web Site上右鍵添加虛擬目錄,別名可取jakarta,路徑指向${TOMCAT_HOME}/conf,即isapi_redirect-1.2.27.dll所在目錄。
接着單擊Default Web Site,選擇ISAPI篩選器,並右鍵添加篩選器,名稱可取jakarta,可執行文件選擇isapi_redirect-1.2.27.dll。
然後點擊虛擬目錄,雙擊“處理程序映射”選擇“編輯功能權限...”將所有權限選上 

步驟6
重啓IIS服務器和Tomcat。
訪問http://www.abc.com/jsp 

注意!!!!!!!!!!!!!!!如果這裏不成功,請確保你目前的系統登錄用戶具有isapi_redirect-1.2.27.dll所在目錄的完全控制權限,

如果沒有,請進行權限賦值,我就是這兒出的錯。(我沒有用administrator用戶登錄,而是是普通用戶登錄win7系統的)

所以,也不確定參照第一篇文章是否也因爲此問題導致沒有整合成功,這兒就不驗證了。



需求二:假如有一個新域名www.def.com(可以通過在C:/Windows/System32/drivers/hosts文件裏添加127.0.0.1 www.def.com模擬),我們想以http://www.def.com訪問需求一中所述的jsp項目 

步驟1:
配置${TOMCAT_HOME}/conf/server.xml,增加一個虛擬主機:

 <Host name="www.def.com" appBase="G:\aspjsp\jspweb\www.def.com" uppackWARs="true" 
             autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
  </Host>                                              

注:文章最下面貼出server.xml文件,另www.def.com所指向jsp網站的完整路徑爲:G:\aspjsp\jspweb\www.def.com\ROOT,ROOT下面我只放了一個Index.jsp文件

關於server.xml格式各個標籤的意義請查看Tomcat相關的文檔。 

步驟2:
新建
目錄:G:\aspjsp\jspweb\www.def.com\ROOT 並在ROOT放一個jsp文件

修改文件uriworkermap.properties的內容爲:/*=ajp13w 

步驟3:
網站節點上右鍵新建網站,取名任意,我取爲“www.def.com”,物理路徑我設置的是C:/inetpub/def,其中,def是我新建的目錄。
然後主機名填寫www.def.com,並選擇“立即啓動網站” 

步驟8:
在網站列表的www.def.com上右鍵添加虛擬目錄,別名可填jakarta,路徑指向${TOMCAT_HOME}/conf,即isapi_redirect-1.2.27.dll所在目錄。
接着單擊www.def.com,選擇ISAPI篩選器,並右鍵添加篩選器,名稱可取jakarta,可執行文件選擇isapi_redirect-1.2.27.dll。
然後點擊虛擬目錄,雙擊“處理程序映射”選擇“編輯功能權限...”將所有權限選上 

步驟9:
重啓IIS服務器和Tomcat。
訪問http://www.def.com

############################################################################

通過以上配置,瀏覽器直接輸入http://www.abc.com/jsp/ 可以訪問到tomcat/webapps/jsp下的index.jsp,假設此Index.jsp的內容顯示爲123

瀏覽器輸入 http://www.def.com/ 可直接訪問到G:\aspjsp\jspweb\www.def.com\ROOT下面的index.jsp,假設此Index.jsp的內容爲456

至此,完成了tomcat 和IIS的整合,通過以上操作,發現一個IIS可以創建多個80端口的網站,他們應該以主機頭的不同來區分的(我是小白)!

IIS與Tomcat服務器的一些對應關係:
IIS   Tomcat(server.xml)
根節點   Engine
網站   Host
網站名稱  Host:<Alias>
網站.主機名  Host.name
網站.物理路徑  Host.appBase
虛擬目錄  Context 


配置經驗:
一般來說,在整合IIS和Tomcat之前,首先應該確定能夠使用類似http://host:8080/context網址訪問Tomcat的站點,以便在配置

IIS過程出現問題時,分辨是IIS的問題還是Tomcat的問題
由於IIS和Tomcat是通過jk連接的,所以,在整合前,可以將兩個服務器視爲互相獨立的,保證兩個服務器均可以正常訪問後,再考慮正確轉發的問題


另外,此次整合我使用的JK是 tomcat-connectors-1.2.40-windows-x86_64-iis.zip


SERVER.XML 

      <Host name="www.abc.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
 <Host name="www.def.com" appBase="G:\aspjsp\jspweb\www.def.com" uppackWARs="true" 
             autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
       </Host>







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章