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
Dei permissão ao
isapi
diretó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
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)":
- Mapeamento de manipulador configurado da seguinte forma:
Restrições de solicitação de acesso configuradas como “nenhuma”. Mas tentei também com "executar" e nada acontece.
- Configuração do filtro ISAPI:
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.???
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).