Tengo Apache configurado como mi servidor web y Tomcat está conectado a Apache a través de mod_jk
, por lo que el usuario nunca interactúa con Tomcat.
Configuré SSL en Apache y puedo acceder a él con https://localhost
, pero cuando intento acceder a mi aplicación en https://localhost/app
, aparece un directory not found
error.
El problema es que cuando uso http normal, puedo acceder bien:http://localhost/app
¿Qué tengo que editar para que esta conexión funcione?
- He descomentado el conector AJP en
server.xml
- He añadido mi host virtual a
httpd.conf
¿Qué me estoy perdiendo?
Respuesta1
Apache considera que http y https son servidores virtuales diferentes. ¿Configuraste tu proxy inverso en ambos hosts virtuales?
Respuesta2
necesitas replicar la configuración que tienes de http a https; no necesitas el conector ajp si tienes un conector http
mire cómo está configurado: probablemente realiza un paso de proxy o usa una RewriteRule con la P al final, que es un proxy.
Respuesta3
Su definición de trabajadores podría estar equivocada. Verifique Workers.properties para conocer el tipo de trabajo. Si es ajp13, elimine la confirmación de su sección ajp en Tomcat como estaba. mod_jk normalmente usa ajp13 como tipo.
Respuesta4
Si usa mod_jk, necesita el conector AJP en Tomcat.
En la mayoría de los casos, si el trabajador tiene un problema de configuración, Apache responderá con un error 500 (Error del servidor). Si obtiene un 404, esto se debe a que la solicitud no se pasa al servidor Tomcat (o la URL no es válida desde el punto de vista de Tomcat). Verifique que JkMount esté presente y sea correcto en su configuración de Apache (para el puerto 443).
Para depurar problemas con mod_jk, active los registros de depuración en mod_jk y observe los registros de Apache. Agregue estas líneas en la configuración mod_jk (jk.conf en general):
Archivo JkLog /var/log/apache2/mod_jk.log
Depuración de JkLogLevel
Debería ver algunos registros al inicio y algunos detalles interesantes para cada solicitud.
Hice este tipo de configuración para Apache2 + SSL + JBoss. Encontrará más detalles y consejos de optimización en Implementar una aplicación J2EE detrás de un servidor Apache en un entorno de producción