Internet 信息服务器的 Tomcat 连接器不工作

Internet 信息服务器的 Tomcat 连接器不工作

我正在尝试配置 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

  1. 我已isapi按照手册的要求授予该目录的权限:

    icacls“%TOMCAT_HOME%\ isapi”/授权“IIS APPPOOL \ DefaultAppPool”:(OI)(CI)M

    icacls“%TOMCAT_HOME%\ isapi \ isapi_redirect.dll”/授权“所有人”:RX

  2. 我创建了一个名为“jakarta”的虚拟目录(这是我第三次或第四次创建它),并将其指向后面的目录(见下文)。虚拟目录的“连接身份”属性配置为“应用程序用户(直通身份验证)”:

在此处输入图片描述

  1. 处理程序映射配置如下:

在此处输入图片描述

访问请求限制配置为“无”。但我也尝试过“执行”,但什么也没发生。

  1. 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端)。

相关内容