IIS6.0+Tomcat共用80埠
問題場景:之前公司的網站是外包開發用ASP.NET 、PHP語言開發,使用Windows平臺IIS伺服器釋出;一個IIS伺服器配置多個網站共用80埠,那麼我現在用java開發的網站就不能使用80埠,意味著配置不了域名;除非購買新的伺服器。
解決方案:通過工具 isapi_redirect-1.2.14.exe 做埠對映,IIS使用80埠,當IIS伺服器收到請求後通過工具轉發到對應的Tomcat即可,tomcat埠根據自身情況配置。
詳細步驟如下:
1.工具
tomcat7 + isapi_redirect-1.2.14.exe + jdk1.8 + IIS6.0
2.配置環境
(注意安裝順序)
IIS6.0 => JDK => Tomcat => isapi_redirect,你可以按照這個順序也可以不按照,
但是順序的前提是:IIS一定要優先於isapi_redirect 否則isapi_redirect安裝會找不到IIS導致配置不正確,
JDK一定要優先於Tomcat 否則安裝Tomcat會找不到JRE導致無法安裝。另外JDK也最好優先於isapi_redirect。
2.1.配置isapi_redirect
開啟isapi_redirect目錄下conf目錄,修改uriworkermap.properties檔案,該檔案的具體內容如下:
# uriworkermap.properties - IIS # # This file provides sample mappings for example wlb # worker defined in workermap.properties.minimal # The general syntax for this file is: # [URL]=[Worker name] /admin/*=wlb /manager/*=wlb /jsp-examples/*=wlb /servlets-examples/*=wlb /你的tomcat/webapps目錄下要配置的專案資料夾名稱/*=wlb # Optionally filter out all .jpeg files inside that context # For no mapping the url has to start with exclamation (!) !/servlets-examples/*.jpeg=wlb # # Mount jkstatus to /jkmanager # For production servers you will need to # secure the access to the /jkmanager url # /jkmanager=jkstatus /*.jsp=wlb /*.action=wlb /*.do=wlb /*=wlb
解釋:wlb可理解為過濾器名稱
/*.jsp等等 為請求過濾的規則,isapi_redirect判斷當iis收到該請求時交給tomcat處理。
/你的tomcat/webapps目錄下要配置的專案資料夾名稱/*=wlb 指定你要過濾的專案
開啟isapi_redirect目錄下conf目錄,修改workers.properties.minimal檔案,該檔案的內入如下:
# workers.properties.minimal -
#
# This file provides minimal jk configuration properties needed to
# connect to Tomcat.
#
# The workers that jk should create and work with
#
worker.list=wlb,jkstatus
#
# Defining a worker named ajp13w and of type ajp13
# Note that the name and the type do not have to match.
#
worker.ajp13w.type=ajp13
worker.ajp13w.host=localhost
worker.ajp13w.port=8009
#
# Defining a load balancer
#
worker.wlb.type=lb
worker.wlb.balance_workers=ajp13w
#
# Define status worker
#
worker.jkstatus.type=status
該檔案為預設的配置,一般不需要修改,保證跟以上一致就行 驗證isapi_redirect是否安裝正確:isapi_redirect的安裝目錄可以自己定義,網上說必須要安裝在tomcat跟目錄,這個沒必要。
安裝完畢isapi_redirect後你會發現IIS預設網站下會出現一個虛擬目錄jakarta
右擊虛擬目錄jakarta 檢視屬性
說明安裝成功
2.2. 配置IIS伺服器
新建網站,名稱隨意
【網站IP地址】:(全部未分配)
【此網站的主機頭】:域名(同tomcat\conf\server.xml <Host>標籤的"name"屬性中的域名相同)
【網站主目錄路徑】:虛擬路徑+資料夾名(tomcat\conf\server.xml<Host>標籤的"appBase"屬性中的虛擬路徑 加上<Context>子標籤的"docBase"屬性的資料夾名) 勾選【允許匿名訪問網站】
【允許下列許可權】:讀取、執行指令碼、執行
在此網站下建立虛擬目錄 名稱:jakarta(必須)
【路徑】: isapi_redirect 安裝目錄\bin (isapi_redirect.dll的目錄)
【允許下列許可權】:讀取、執行指令碼、執行
網站-->右鍵-->屬性:
1) 【ISAPI篩選器】-->新增--> 【篩選器名稱】:jakarta 【可執行檔案】: isapi_redirect安裝目錄\bin\isapi_redirect.dll (isapi_redirect.dll檔案)
2) 【文件】:-->新增-->【預設內容頁】:比如index.jsp(對應網站預設首頁) -->確定-->把其餘的都刪掉
ü Web服務擴充套件-->右鍵-->新增一個新的Web服務擴充套件:【副檔名】:jakarta(必須)
【要求的檔案】: isapi_redirect安裝目錄\bin\isapi_redirect.dll (isapi_redirect.dll檔案)
勾選【設定擴充套件狀態為允許】儲存
2.3.tomcat配置
2.3.1.tomcat的conf下安裝時候已經自動建立workers.properties,如果沒建立,則手動建立檔案workers.properties
workers.properties內容如下(請更成換你自己的Tomcat和jdk目錄:
workers.tomcat_home=d:\tomcat\
workers.java_home=d:\Java\jdk1.6.0_10
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
2.3.2.建立檔案uriworkermap.properties uriworkermap.properties內容如下:
/*.jsp=ajp13
/*=ajp13 /*增加讓servlet等訪問*/
2.3.3. 將isapi_redirect.dll、workers.properties、uriworkermap.properties三個檔案放至Tomcat下的conf目錄裡。
3.啟動,測試
先啟動tomcat,然後再啟動IIS下的網站即可對映到tomcat
到此為止你就可以測試了。此時你輸入你的域名就可以直接訪問你的javaweb專案了,而不用再加8080埠了。當iis接受到一個jsp網站isapi_redirect會轉發到tomcat處理,然後將處理結果再返回給客戶。