Estou tentando configurar um Internet Information Server para funcionar com o Tomcat e após seguir os passos no site não funciona.

O que é pior, não tem como documentar ou perceber onde está o problema. Como aparecem no site existem muitas etapas para configurar e a saída deve ser "ok", mas não há como diagnosticar onde está o problema.

IIS

Tenho um Windows Server 2012 R2 64 bits com o IIS que sai com a instalação. Primeira pergunta: ¿é 32 bits ou 64 bits?? Para o resto desta questão, vou assumir que é de 64 bits.

Tomcat

Apache tomcat 10.0.18. Funciona com a versão java 1.8.0_161. O servidor está configurado para ser executado como um serviço com logon como "Conta do sistema local". Por causa deste exemplo, digamos que está instalado no %TOMCAT_HOME%.

Conector AJP configurado assim:

<Connector protocol="AJP/1.3"
           address="0.0.0.0"
           port="8009"
           secretRequired="false"
           xpoweredBy="true"/>

E confirmou que está funcionando:

C:\>netstat -ab | find "8009"
  TCP    0.0.0.0:8009           THIS-SERVER:0        LISTENING
  TCP    [::]:8009              THIS-SERVER:0        LISTENING

Redirecionador ISAPI para Microsoft IIS

Baixado daqui . versão de 64 bits. Instalado sob %TOMCAT_HOME%\isapi. Os arquivos de configuração são:

ì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

Configuração do IIS tentada

  1. Eu dei permissão ao isapidiretório conforme solicitado pelo manual:

    icacls "%TOMCAT_HOME%\isapi" /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)M

    icacls "%TOMCAT_HOME%\isapi\isapi_redirect.dll" /grant "Todos":RX

  2. Eu criei um diretório virtual f**** (esta é a terceira ou quarta vez que faço) chamado "jakarta" e aponto para o diretório posterior (veja abaixo). O diretório virtual possui a propriedade "conectar como" configurada como "usuário do aplicativo (autenticação de passagem)":

insira a descrição da imagem aqui

  1. Mapeamento do manipulador configurado da seguinte forma:

insira a descrição da imagem aqui

Restrições de solicitação de acesso configuradas como "nenhuma". Mas eu tentei também com "execute" e nada acontece.

  1. Configuração do filtro ISAPI:

insira a descrição da imagem aqui

O problema é que aparentemente tendo tudo ok, a saída que obtive ao tentar conectar ao caminho virtual é um erro 500 se eu usar o filtro ISAPI de 32 bits ou erro 403 se eu usar o filtro ISAPI de 64 bits. O que estou fazendo errado??? E o que é mais importante, existe uma maneira de diagnosticar se as diferentes partes deste clusterfuck estão corretas, para verificar se o filtro ISAPI está funcionando, o conector AJP do tomcat está funcionando, etc.???

insira a descrição da imagem aqui

answer

Resolvido: se você ler a referência atualizada do conector , encontrará várias coisas:

Note that in a 64 Bit environment - at least for IIS 7 - the used IIS Application Pool should have "Enable 32-bit Applications" set to "False". Otherwise the redirector will not be called and returns an http code 404. If you think, the 32bit version of isapi_redirect.dll would do the job instead, you will get an http code 500, because the library is not loadable into a 64 Bit IIS.

E completei as informações do registro antes de testar novamente. Agora está funcionando (as solicitações aparecem no lado do tomcat).