1. 程式人生 > >IIS6.0+Tomcat共用80埠

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處理,然後將處理結果再返回給客戶。