我正在嘗試配置 Internet 資訊伺服器以與 Tomcat 一起使用,並按照以下步驟操作網站這是行不通的。
最糟糕的是,無法記錄或意識到問題出在哪裡。如網站中所示,有許多配置步驟,輸出應該是“ok”,但無法診斷問題出在哪裡。
資訊系統
我有一個 Windows Server 2012 R2 64 位,帶有安裝時附帶的 IIS。第一個問題:是32位還是64位?對於這個問題的其餘部分,我將假設它是 64 位元的。
雄貓
阿帕奇 tomcat 10.0.18。使用 java 版本 1.8.0_161 運行。伺服器配置為作為服務運行,並以「本機系統帳戶」登入。對於此範例,假設安裝在%TOMCAT_HOME%
.
AJP 連接器配置如下:
<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="8009"
secretRequired="false"
xpoweredBy="true"/>
並確認它正在工作:
C:\>netstat -ab | find "8009"
TCP 0.0.0.0:8009 THIS-SERVER:0 LISTENING
TCP [::]:8009 THIS-SERVER:0 LISTENING
Microsoft IIS 的 ISAPI 重定向器
已下載從這裡。 64位元版本。安裝在%TOMCAT_HOME%\isapi
.設定檔是:
ìsapi_redirect.properties
:
#
# isapi_redirect.properties
#
extension_uri=/jakarta/isapi_redirect.dll
log_file=[server-home-removed]\\isapi\\isapi_redirect.log
log_level=debug
worker_file=[server-home-removed]\\isapi\\workers.properties
worker_mount_file=[server-home-removed]\\isapi\\uriworkermap.properties
workers.properties
#
# workers.properties
#
worker.list=tomcat01
worker.tomcat01.type=ajp13
worker.tomcat01.host=localhost
worker.tomcat01.port=8009
uriworkermap.properties
#
# uriworkermap.properties
#
/examples/*=tomcat01
/jakarta/*=tomcat01
/pwdReset/*=tomcat01
IIS的配置試過了
我已
isapi
按照手冊的要求授予了該目錄的權限:icacls "%TOMCAT_HOME%\isapi" /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)M
icacls "%TOMCAT_HOME%\isapi\isapi_redirect.dll" /grant "Everyone":RX
我創建了名為“jakarta”的 af**** 虛擬目錄(這是我第三次或第四次這樣做)並將其指向後面的目錄(見下文)。虛擬目錄的「連線為」屬性配置為「應用程式使用者(直通身份驗證)」:
- 處理程序映射配置如下:
存取請求限製配置為“無”。但我也嘗試過“執行”,但沒有任何反應。
- ISAPI 篩選器配置:
問題是顯然一切正常,如果我使用 32 位元 ISAPI 過濾器,嘗試連接到虛擬路徑時得到的輸出是 500 錯誤,如果使用 64 位元 ISAPI 過濾器,則輸出是 403 錯誤。我究竟做錯了什麼?更重要的是,有沒有一種方法可以診斷這個 clusterfuck 的不同部分是否正確,檢查 ISAPI 過濾器是否工作,tomcat 的 AJP 連接器是否工作等等?
答案1
解決:如果你讀過連接器的更新參考你會發現幾件事:
請注意,在 64 位元環境中 - 至少對於 IIS 7 -使用的 IIS 應用程式集區應將“啟用 32 位元應用程式”設定為“False”。否則,重定向器將不會被呼叫並傳回 http 程式碼 404。
我已經在再次測試之前完成了註冊表資訊。現在它正在工作(請求出現在 tomcat 端)。