很多機器都需要同時使用tomcat和iis兩個服務器以部署不同的網站,而解決共用80端口的問題也經常遇到,今天實際操作了一回,以下是具體步驟:
實現tomcat和iis共用80端口的思路其實就是利用iis可以建立多個網站的功能,將tomcat下的項目添加為iis的一個站點,再使用一個可以redirect的插件,將iis中指向此站點的請求交給tomcat來處理。
1、 首先,需要一個可以實現redirect的插件isapi_redirect,可以到網上下載,我使用的是isapi_redirect-1.2.14.dll;
2、然后,在隨便哪個地方建立一個注冊表編輯文件.reg,並輸入以下內容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation]
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector]
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
"extension_uri"="/jakarta/isapi_redirect.dll" /*文件名稱可以改,路徑最好別改,因為要和iis中的篩選器配置對應*/
"worker_file"="C:\\Tomcat 6.0\\conf\\workers.properties" /*具體由自己的路徑定/
"worker_mount_file"="C:\\Tomcat 6.0\\conf\\uriworkermap.properties" /*同上*/
"log_file"="C:\\Tomcat 6.0\\logs\\isapi.log"
"log_level"="info"
3、在tomcat的conf文件夾下建立workers.properties文件,並輸入以下內容:
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
4、同樣建立uriworkermap.properties內容如下
/*.jsp=ajp13
/*.do=ajp13
/*=ajp13
5、在tomcat的log目錄下建立isapi.log文件,內容為空即可
6、Tomcat6.0目錄下新建jakarta文件夾,然后把isapi_redirect.dll放入其中.
7、配置tomcat的server.xml文件
在<Engine></Engine>節點下,修改
<Host name="www.xxxx.com" appBase="webapps"
unpackWARs="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="netfile" debug="0" reloadable="true" />
</Host>
的內容,name為網站要設的域名,下面在iis里新建網站的時候域名要和這個一樣;docBase的值為網站文件夾,即”.. Tomcat 6.0\webapps\”下項目文件夾的名稱;
8、運行.reg文件, 並打開HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0項,檢查右邊項目中是否包含如下項:
extension_uri /jakarta/isapi_redirect.dll (jakarta為IIS下的虛擬目錄)
log_file c:\Tomcat6.0\logs\isapi.log (指定JK插件使用的日志文件)
log_level debug (指定日志級別)
worker_file c:\Tomcat6.0\conf\workers.properties (指定JK插件的工作文件)
worker_mount_file c:\ Tomcat6.0\conf\uriworkermap.properties (指定JK插件的URL映射)
如果沒有上述項,則建立相關項和相關值
9、以上為tomcat配置;
10、打開“管理工具”-“Internet信息服務(IIS)管理器”,展開“本地計算機”,選擇網站,如圖:
在右側點右鍵,新建-網站,點擊“下一步”,輸入網站描述(內容隨便),點擊“下一步”,輸入“主機頭”,如圖:
下一步,選擇主目錄(tomcat下webapps里的項目根目錄),勾選“運行匿名訪問”,如圖:
下一步,在“允許權限”里,勾選“執行…”選項,以支持isapi_redirect,如圖:
下一步,完成網站新建。
11、在新建的網站上點右鍵選“屬性”,在彈出的頁框里選擇“ISAPI篩選器”,點“添加”,篩選器名稱填jakarta,可執行文件中填入isapi_redirect-1.2.14.dll的絕對路徑(包括文件名),如圖:
一路確定。
12、再在“此網站”上右鍵,選擇“新建”->“虛擬目錄”,別名填jakarta,下一步,路徑選為你的isapi_redirector.dll存放的目錄(不包括文件名),下一步,權限中記得把“執行”那項打勾,好了,完成。
13、應用程序擴展名映射:在主目錄里點配置,在跳出的窗口應用程序配置中增加.jsp應用程序擴展名映射,可執行文件指向isapi_redirect-1.2.14.dll文件(並且將該輸入框中的所有內容用“”括起來,否則會提示應使用()括起來【但此處的()應為“”,是系統漢化時的翻譯錯誤】),動作限制為GET,HEAD,POST,DEBUG (手動輸入)如圖:
14、在“Internet信息服務管理器”的“網站”中的“Web服務擴展”上點右鍵選擇“添加一個新的Web服務擴展”,
彈出的框中擴展名填JSP(無所謂的,自己隨便設置名稱),“要求的文件”選“添加”然后找到你的isapi_redirector.dll后“確定”。 “設置擴展狀態為允許”也打上勾,確定。添加之后,如圖:
15、重啟IIS,重啟Tomcat.
16、檢查新建的網站是否加載成功isapi_redirect-1.2.14.dll文件,在網站的屬性里,切到篩選器頁,
如圖則加載成功。
17、測試http://www.xxxx.com/