Cómo conectar apache con tomcat

Existen varios productos que requieren que estas dos aplicaciones trabajen cada una su fuerte, pero lograr este trabajo en comun no es precisamente una tarea fácil (si no se cuenta con documentación). A continuación un breve how to para ustedes y facilitarle esta tarea.

Cambios al /etc/profile

Agegar esto al PATH como variables generales:

JAVA_HOME=/usr/java/jre1.6.0_01
export JAVA_HOME
TOMCAT_HOME=/usr/share/tomcat5
export TOMCAT_HOME
CATALINA_HOME=/usr/share/tomcat5
export CATALINA_HOME

Cambios necesarios en httpd.conf:

Después de “LoadModule cgi_module modules/mod_cgi.so” ... agregar lo siguiente (quitar los paréntesis)
LoadModule jk_module modules/mod_jk.so (ruta de mod_jk)
JkWorkersFile /usr/share/tomcat5/conf/workers.properties (ruta para el archivo de configuración del "trabajador")
JkLogFile /usr/share/tomcat5/logs/mod_jk.logs (path for mod_jk logs)
JkLogLevel info
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /jsp-examples/* ajp13 (usuario que manejara los trabajos asignados a tomcat)

Al final de httpd.conf agregar:
Include /usr/share/tomcat5/conf/mod_jk.conf

Cambios necesarios en tomcat5/conf/server.xml

Después de añadir:

(Esta linea generará el archivo mod_jk.conf necesario para que apache y tomcat se comuniquen entre sí. Recuerda primero iniciar tomcat y luego de 10 segundos inicar apache)

Después de agregar:

Cambios y confirmaciones en el archivo tomcat5/conf/workers.properties

workers.tomcat_home=/usr/share/tomcat5 (path for TOMCAT_HOME)
workers.java_home=/usr/java/jre1.6.0_01 (path for JAVA_HOME)
ps=/
worker.list=ajp13 (verify same name as define in httpd.conf as handler of jkMount)
worker.ajp13.port=8009
worker.ajp13.host=127.0.0.1 (in this case mod_jk was unable to resolve localhost address)
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=ajp13
worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
worker.inprocess.cmd_line=start
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr