Estoy intentando configurar un servidor de información de Internet para que funcione con Tomcat y después de seguir los pasos enel sitio webno funciona.
Lo peor es que no hay forma de documentar o darse cuenta de dónde está el problema. Como aparece en el sitio web, hay muchos pasos para configurar y el resultado debería ser "correcto", pero no hay forma de diagnosticar dónde está el problema.
IIS
Tengo un windows Server 2012 R2 64 bits con el IIS que viene con la instalación. Primera pregunta: ¿es 32bit o 64bit??? Para el resto de esta pregunta, asumiré que es de 64 bits.
Gato
Apache Tomcat 10.0.18. Se ejecuta con la versión 1.8.0_161 de Java. El servidor está configurado para ejecutarse como un servicio con inicio de sesión como "Cuenta del sistema local". Por el bien de este ejemplo, digamos que está instalado en %TOMCAT_HOME%
.
Conector AJP configurado así:
<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="8009"
secretRequired="false"
xpoweredBy="true"/>
Y confirmó que está funcionando:
C:\>netstat -ab | find "8009"
TCP 0.0.0.0:8009 THIS-SERVER:0 LISTENING
TCP [::]:8009 THIS-SERVER:0 LISTENING
Redirector ISAPI para Micrsoft IIS
Descargadode aquí. Versión de 64 bits. Instalado debajo %TOMCAT_HOME%\isapi
. Los archivos de configuración son:
ì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
Se intentó la configuración del IIS
Le he dado permiso al
isapi
directorio según lo solicitado por el manual:icacls "%TOMCAT_HOME%\isapi" /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)M
icacls "%TOMCAT_HOME%\isapi\isapi_redirect.dll" /grant "Todos":RX
Creé un directorio virtual f**** (esta es la tercera o cuarta vez que lo hago) llamado "jakarta" y lo señalo al directorio posterior (ver más abajo). El directorio virtual tiene la propiedad "conectar como" configurada como "usuario de la aplicación (autenticación Pass-Through)":
- Mapeo del controlador configurado de la siguiente manera:
Restricciones de solicitud de acceso configuradas como "ninguna". Pero también lo intenté con "ejecutar" y no pasa nada.
- Configuración del filtro ISAPI:
El problema esque al parecer teniendo todo ok, el resultado que me sale al intentar conectarme a la ruta virtual es un error 500 si uso el filtro ISAPI de 32 bits o error 403 si uso el filtro ISAPI de 64 bits. ¿¿¿Qué estoy haciendo mal??? Y lo que es más importante, ¿hay alguna forma de diagnosticar que las diferentes partes de este clusterfuck son correctas, de comprobar si el filtro ISAPI está funcionando, el conector AJP de Tomcat está funcionando, etc.???
Respuesta1
Resuelto: si leesla referencia actualizada del conectorencontrarás varias cosas:
Tenga en cuenta que en un entorno de 64 bits, al menos para IIS 7,el grupo de aplicaciones IIS utilizado debe tener "Habilitar aplicaciones de 32 bits" configurado en "Falso". De lo contrario, no se llamará al redirector y devolverá un código http 404. Si cree que la versión de 32 bits de isapi_redirect.dll haría el trabajo, obtendrá un código http 500, porque la biblioteca no se puede cargar en un IIS de 64 bits. .
Y completé la información del registro antes de realizar la prueba nuevamente. Ahora está funcionando (las solicitudes aparecen en el lado de Tomcat).