O conector Tomcat para o Internet Information Server não funciona

O conector Tomcat para o Internet Information Server não funciona

Estou tentando configurar um Internet Information Server para funcionar com o Tomcat e depois de seguir as etapas emo siteisso não funciona.

O que é pior, não há forma de documentar ou perceber onde está o problema. Conforme aparece no site existem vários passos 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 restante desta questão, assumirei que é de 64 bits.

gato

Apache Tomcat 10.0.18. Funciona com java versão 1.8.0_161. O servidor está configurado para ser executado como um serviço com logon como "Conta do sistema local". Para fins deste exemplo, digamos que esteja 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

Baixadodaqui. Versão de 64 bits. Instalado em %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. 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 (esta é a terceira ou quarta vez que faço isso) chamado "Jakarta" e apontei-o para o diretório posterior (veja abaixo). O diretório virtual possui a propriedade "conectar como" configurada como "usuário do aplicativo (autenticação pass-through)":

insira a descrição da imagem aqui

  1. Mapeamento de manipulador configurado da seguinte forma:

insira a descrição da imagem aqui

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

  1. Configuração do filtro ISAPI:

insira a descrição da imagem aqui

O problema éque aparentemente está 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 de errado??? E o que é mais importante, existe uma maneira de diagnosticar se as diferentes partes desse clusterfuck estão corretas, de verificar se o filtro ISAPI está funcionando, se o conector AJP do Tomcat está funcionando, etc.???

insira a descrição da imagem aqui

Responder1

Resolvido: se você lera referência atualizada do conectorvocê encontrará várias coisas:

Observe que em um ambiente de 64 bits - pelo menos para IIS 7 -o pool de aplicativos IIS usado deve ter "Ativar aplicativos de 32 bits" definido como "Falso". Caso contrário, o redirecionador não será chamado e retornará um código http 404. Se você pensar que a versão de 32 bits do isapi_redirect.dll faria o trabalho, você obterá um código http 500, porque a biblioteca não pode ser carregada em um IIS de 64 bits .

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

informação relacionada