我正在尝试配置 Internet 信息服务器以与 Tomcat 配合使用,并按照网站它不起作用。
最糟糕的是,没有办法记录或了解问题所在。正如网站上显示的那样,配置有很多步骤,输出应该是“ok”,但没有办法诊断问题出在哪里。
互联网信息服务
我有一台 Windows Server 2012 R2 64 位,安装时附带 IIS。第一个问题:它是 32 位还是 64 位?对于这个问题的其余部分,我将假设它是 64 位。
雄猫
Apache 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
Micrsoft 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”/授权“IIS APPPOOL \ DefaultAppPool”:(OI)(CI)M
icacls“%TOMCAT_HOME%\ isapi \ isapi_redirect.dll”/授权“所有人”:RX
我创建了一个名为“jakarta”的虚拟目录(这是我第三次或第四次创建它),并将其指向后面的目录(见下文)。虚拟目录的“连接身份”属性配置为“应用程序用户(直通身份验证)”:
- 处理程序映射配置如下:
访问请求限制配置为“无”。但我也尝试过“执行”,但什么也没发生。
- ISAPI 过滤器配置:
问题是一切似乎都正常,当我尝试连接到虚拟路径时,如果我使用 32 位 ISAPI 过滤器,则输出 500 错误;如果我使用 64 位 ISAPI 过滤器,则输出 403 错误。我做错了什么???更重要的是,有没有办法诊断这个混乱局面的不同部分是否正确,检查 ISAPI 过滤器是否正常工作,tomcat 的 AJP 连接器是否正常工作等???
答案1
已解决:如果你读连接器的更新参考你会发现几件事:
请注意,在 64 位环境中 - 至少对于 IIS 7 -使用的 IIS 应用程序池应将“启用 32 位应用程序”设置为“False”。否则,重定向器将不会被调用并返回 http 代码 404。如果您认为 32 位版本的 isapi_redirect.dll 可以完成这项工作,那么您将获得 http 代码 500,因为该库无法加载到 64 位 IIS 中。
并且我已在再次测试之前完成了注册表信息。现在它可以正常工作(请求出现在tomcat端)。