2018-06-27 配置Tomcat連接IIS環(huán)境

背景

使用FineReport制作一些報(bào)表,然后嵌入已經(jīng)存在的Web項(xiàng)目中,因此需要Tomcat和IIS聯(lián)通。
根據(jù)FineReport的官方的一些說明,知道FineReport是放入Tomcat服務(wù)器的host指定目錄即可運(yùn)行的,而已經(jīng)存在的項(xiàng)目是IIS的,因此需要一個聯(lián)通。

效果

通過訪問site/app中的js代碼,不必跨域和跨端口,直接訪問../WebReport獲得報(bào)表展示即可

吐槽

FineReport官網(wǎng)上的說明書已經(jīng)落后的,根據(jù)上面的指導(dǎo),我花費(fèi)4小時,沒有搞定,最后去了Tomcat網(wǎng)站看了說明馬上搞定。Tomcat小白,第一次弄,做個記錄吧。

準(zhǔn)備

必要環(huán)境

  1. JRE
  2. JDK

都是從Oracle那里去下載。
不明白為什么要JDK,反正根據(jù)Tomcat上的說明是需要的,我就安裝了。

Tomcat服務(wù)

我從官網(wǎng)下載了最新的Tomcat9.0,直接安裝默認(rèn)目錄,端口也沒有修改。很多百度結(jié)果都是安裝到非C盤。我只想說,實(shí)際部署的時候,有那么多盤給你嗎?安裝C盤,然后提權(quán)就可以了。

IIS服務(wù)

這個一般是windows server自己配置了。沒有太多可以說的。

下載聯(lián)通控制程序

去Tomcat網(wǎng)站下載:https://tomcat.apache.org/download-connectors.cgi
根據(jù)說明可以下載源碼和編譯好的released版本。我選擇了兼容x64的適配Windows的下載。當(dāng)然也是用最新版。
需要選擇合適的鏡像,基本國內(nèi)大學(xué)的site都可以用。
源碼需要vs2015的編譯器,我沒有嘗試過(沒有空折騰了),如果是Linux部署肯定編譯好,不過IIS有在Linux嗎?

其他備忘

OS: Windows10,Windows 2012 Server (x64)
IIS: IIS 10 , IIS 8
Tomcat:9.0, 安裝到->C:\Program Files\Apache Software Foundation\Tomcat 9.0
JDK:10.0
JRE:8
isapi_redirect.dll:1.2.43

步驟

后面就是Step By Step配置,說明手冊很簡單。
http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html

我這里僅僅做點(diǎn)中文翻譯即可

Tomcat配置部分

創(chuàng)建isapi目錄

創(chuàng)建一個目錄: ${tomcat_home}\isapi

授權(quán)

需要管理員權(quán)限執(zhí)行Cmd:

icacls "C:\Program Files\Apache Software Foundation\Tomcat 9.0\isapi" /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)M

注意哦:這里用的是IIS APPPOOL\DefaultAppPool,如果站點(diǎn)用的應(yīng)用程序池不是這個,則需要修改。

下載并部署連接器

https://tomcat.apache.org/download-connectors.cgi找到合適的版本下載,然后解壓;
將isapi_redirect.dll放入目錄:${tomcat_home}\isapi

創(chuàng)建配置文件

文件路徑:
${tomcat_home}\isapi\isapi_redirect.properties
我使用notepad++的管理員權(quán)限創(chuàng)建保存。
(實(shí)際上,我還是比較習(xí)慣sudo vi,方便?。?br> 文件內(nèi)容:

extension_uri=/jakarta/isapi_redirect.dll
log_file=C:\Program Files\Apache Software Foundation\Tomcat 9.0\isapi\isapi_redirect.log
log_level=info
worker_file=C:\Program Files\Apache Software Foundation\Tomcat 9.0\isapi\workers.properties
worker_mount_file=C:\Program Files\Apache Software Foundation\Tomcat 9.0\isapi\uriworkermap.properties

注意:使用windows的notepad可能導(dǎo)致沒有權(quán)限和默認(rèn)加上.txt擴(kuò)展名

創(chuàng)建配套worker文件

文件路徑:
${tomcat_home}\isapi\workers.properties
文件內(nèi)容:

worker.list=tomcat01
worker.tomcat01.type=ajp13
worker.tomcat01.host=localhost
worker.tomcat01.port=8009

注意:不要照抄,根據(jù)客戶生產(chǎn)環(huán)境和Tomcat安裝配置的端口處理

創(chuàng)建配套映射文件

文件路徑:
${tomcat_home}\isapi\uriworkermap.properties
文件內(nèi)容:

/examples/*=tomcat01
/WebReport/*=tomcat01

注意:
我這里寫了2個路徑映射,一個舉例,我主要用來測試,一個是FineReport默認(rèn)的路徑。屆時,IIS遇到這樣的路徑,直接轉(zhuǎn)發(fā)給Tomcat。

IIS配置部分

增加虛擬目錄

在自己的站點(diǎn)上,增加一個虛擬目錄。
別名:jakarta
物理路徑:${tomcat_home}\isapi
說明:因?yàn)榕渲弥袑懥薺akarta,所以別名就必須配套一致。

配置處理程序映射

選中虛擬目錄,雙擊“處理程序映射”。
找到:ISAPI-dll一行(可能是disabled狀態(tài)),
在右側(cè)的操作Form中,點(diǎn)擊“編輯功能權(quán)限”,在彈出的對話框中,勾選最后一個“執(zhí)行”。
(如果是disable狀態(tài),確定后會激活)

為站點(diǎn)添加Filter

選中部署的站點(diǎn)(地球圖標(biāo)),雙擊“ISAPI篩選器”。
點(diǎn)擊右側(cè)Form中的添加。
輸入名稱:tomcat(其實(shí)可以隨意)
可執(zhí)行文件:${tomcat_home}\isapi\isapi_redirect.dll
點(diǎn)擊確定退出。

服務(wù)器配置

選中IIS中的一個服務(wù)器(你站點(diǎn)的服務(wù)器)。
雙擊“ISAPI and CGI 限制”,在操作Form中點(diǎn)擊添加。
在彈出的對話框Form中輸入:
路徑:
${tomcat_home}\isapi\isapi_redirect.dll
描述:
tomcat(其實(shí)可以隨意)
勾選:
checked 允許執(zhí)行擴(kuò)展路徑
點(diǎn)擊確定。

完工重啟服務(wù)

配置過程中其實(shí)最好是停止所有的服務(wù),然后再啟動。
不過有時候IIS正在生產(chǎn),因此只能重啟服務(wù)。
好像沒有遇到順序問題,直接都先停止,再啟動。

測試成果

  1. 登錄8080
    localhost:8080,理論上可以進(jìn)入Tomcat管理默認(rèn)index.jsp
    檢查IIS,是否有其他站點(diǎn)占用8080端口
  2. localhost/examples/index.jsp
    理論上可以看到結(jié)果。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容