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:
建立如下注冊表文件並執行
- Windows Registry Editor Version 5.00
- [HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Jakarta Isapi Redirector/1.0]
- "log_file"="D://Software//apache-tomcat-6.0.18//logs"
- "log_level"="debug"
- "worker_file"="D://Software//apache-tomcat-6.0.18//conf//workers.properties"
- "worker_mount_file"="D://Software//apache-tomcat-6.0.18//conf//uriworkermap.properties"
- "tomcat_start"="D://Software//apache-tomcat-6.0.18//bin//tomcat.bat start"
- "tomcat_stop"="D://Software//apache-tomcat-6.0.18//bin//tomcat.bat stop"
- "extension_uri"="/jakarta/isapi_redirect-1.2.27.dll"
注意修改與tomcat相關的路徑(在我的系統中,tomcat安裝目錄爲“D:/Software/apache-tomcat-6.0.18”)
步驟3:
在tomcat/conf下建立兩個文件
文件1:workers.properties
- # 工作站的名稱任意,但須注意前後一致,多個工作站以“,”分割
- worker.list=ajp13w
- # 工作站的類型:ajp13是IIS與Tomcat通訊協議的名稱
- worker.ajp13w.type=ajp13
- # 注意此處的host需要與主機或者設置域名的名稱一致
- worker.ajp13w.host=www.abc.com
- # worker.ajp13w.host=localhost
- # ajp13協議的通訊端口
- worker.ajp13w.port=8009
- # 負載因子
- worker.worker1.lbfactor=1
文件2:uriworkermap.properties
- # 當前域名下上下文路徑爲jsp的請求,轉發給ajp13w工作站處理
- /jsp/*=ajp13w
- /jsp=ajp13w
- # 當前域名下的所有請求都轉發給ajp13w工作站處理
- # /*=ajp13w
- # 當前域名下,所有.jsp的請求都轉發給ajp13w工作站處理
- # /*.jsp
- # 當前域名下,除了.html的請求,其他都轉發給ajp13w工作站處理
- # !/*.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,增加一個虛擬主機:
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 "%r" %s %b" />
</Host>
<Host name="www.def.com" appBase="G:\aspjsp\jspweb\www.def.com" uppackWARs="true"
autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
</Host>