tomcat和iis共用80端口的簡明手冊


​​對於使用tomcat-connector實現iis與tomcat實現80端口共用的問題,網上的信息異常混亂,很多地方誤人子弟,浪費時間。本文給出簡明手冊式的做法:

首先列出我們需要做的事項:

1、下載tomcat-connector的dll

2、創建2個目錄​,一個用於iis建立網站,一個用於創建jakarta虛擬目錄

3、創建3個properties文件

4、iis設置映射關系

下面簡明說明:

1、下載我就不說了,在tomcat​官方完整可以下,會得到isapi_redirect.dll

下載地址:https://tomcat.apache.org/download-connectors.cgi​

2、創建3個properties​文件,內容如下

​2.1 isapi_redirect.properties

內容如下:

​# Configuration file for the Tomcat ISAPI Redirector

# The path to the ISAPI Redirector Extension, relative to the website

# This must be in a virtual directory with execute privileges

extension_uri=/jakarta/isapi_redirect.dll

# Full path to the log file for the ISAPI Redirector

log_file=d:/temp/logs/isapi_redirect.log

# Log level (debug, info, warn, error or trace)

log_level=debug

# Full path to the workers.properties file

worker_file=d:/temp/workers.properties

# Full path to the uriworkermap.properties file

worker_mount_file=d:/temp/uriworkermap.properties

​2.2 workers.properties

內容如下:

workers.tomcat_home=D:/tomcat9/

workers.java_home=C:/Program Files/Java/jre1.8.0_191/

# 值可任意,但需要與uriworkermap.properties配置保持一致,不一致會導致空白頁

worker.list=jdart

#下面其他可以忽略,系統都有默認值

#worker.jdart.type=ajp13

#這是tomcat的訪問域名或IP

#worker.jdart.host=127.0.0.1

#同server.xml配置一致

#worker.jdart.port=8009

​2.3 uriworkermap.properties

內容如下:

#這個地方,=前面為tomcat的項目名稱,后面為worker.list的名稱,如下面就是映射 http://localhost:8080/tomcatprojectname/這個tomcat網站的

#如果不加項目名:/*=jdart 會映射所有tomcat網站

/tomcatprojectname/*=jdart

​2、創建如下目錄結構

temp 目錄,用於存放workers.properties和uriworkermap.properties

temp\jakarta\​目錄,用於放置isapi_redirect.properties和isapi_redirect.dll

目錄結構很重要,如果isapi_redirect.properties沒有存放到jakarta目錄,會出現GetFilterVersion失敗的500錯誤

​3、iis配置

iis配置很簡單,主要有下面幾點:

1、對temp目錄創建一個網站,然后對jakarta目錄創建一個虛擬目錄,如果沒有jakarta目錄,則會映射失敗,出現404找不到資源的錯誤


圖1

2、在iis跟節點的功能列表中增加isapi和cgi限制,並設置為允許

ispai路徑,選擇你的isapi_redirect.dll,名稱隨便,記得要設置為允許


圖2

圖3

圖4 編輯權限

圖5 注意設置為允許

3、添加isapi篩選器

名稱最好為jakarta,見圖3

4、在網站的處理程序映射界面,編輯功能權限,全選各個權限即可,見圖4。

到此你如果完整按照上述配置,應該可以通過iis訪問到tomcat的地址了

 

整個過程有很多誤區:​

誤區包括:

1、是否需要修改注冊表​:

答,不需要,tomcat docs里面已經明確說明, The redirector will check for the isapi_redirect.properties file during initialisation, and use it in preference to the registry if present,所以isapi_redirect.properties最優先,其次才是注冊表,而寫注冊表非常容易搞錯。

需要注意的的是,這個properties文件一定要放在共同目錄,否則無效。​

2、是否需要​設置端口:

答,只有非默認才需要設置,否則不需要設置

默認就是ajp13,localhost,8009,如果有變化你才需要設置,否則work.list后面的的行,全部可以刪除。

3、是否需要在tomcat/conf目錄​放置那些文件:

答:不需要,任意磁盤位置均可​

4、出現GetFilterVersion 是由於沒有寫或修改注冊表

答​:注冊表配置,基本不會成功,請用isapi_redirect.properties文件,更為方便

HTTP 錯誤 500.0 - Internal Server Error》調用 GetFilterVersion 失敗,在 ISAPI 篩選器 "D:\tomcat9\iistomcatconnector\jakarta\isapi_redirect.dll" 上

5、是否需要配置tomcat的server.xml

答:根本不需要​

6、是否需要配置iis的jsp映射

答:不需要​,dll只按照uriworkermap.properties所配置的規則進行目錄映射,比如springboot開發的程序,根本沒有擴展名,更無從配置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM