Capitulos de este wiki
  1. 1 Introducción
  2. 2 Configuración de mod_jk, apache y tomcat
  3. 3 Interpretación de las URL por parte de Tomcat
  4. 4 Configuración de virtual hosts

Configuración de apache y tomcat en 10 minutos - Configuración de mod_jk, apache y tomcat

2 - Configuración de mod_jk, apache y tomcat

[editar]
Tutorial creado por Alex Maneu.
18 de Noviembre de 2005
El procedimiento es el siguiente:

1. Verifique que está instalado el software necesario:

  • Apache httpd 2.0 o superior
  • Jakarta Tomcat 5.0 o superior
  • mod_jk 1.2 o superior

Consulte para ello la documentación de su sistema operativo. Si usa vd. BSD, encontrará el software en /usr/ports.

2. Localice los ficheros mod_jk.conf y workers.properties. Normalmente se encontrarán en el directorio de configuración de apache (/etc/httpd, /usr/local/etc/apache2; consulte la documentación de su sistema). Es posible que en su sistema existan las versiones de ejemplo de dichos ficheros (mod_jk.conf.sample, workers.properties.sample). En ese caso renombre los ficheros y cópielos al directorio de configuración de apache httpd.

3. Modifique el fichero de configuración de apache httpd (httpd.conf) para que incluya la siguiente linea:

LoadModule jk_module          libexec/apache2/mod_jk.so

Es posible que necesite modificar el path donde se encuentra su módulo mod_jk. Por ejemplo puede que deba escribir libexec/httpd/mod_jk.so en lugar de libexec/apache2/mod_jk.so. Localice el fichero mod_jk.so para averiguar el path que debe escribir.

4. Modifique el fichero de configuración de apache httpd (httpd.conf) para que incluya la siguiente linea:

Include /usr/local/etc/apache2/mod_jk.conf

Es posible que necesite modificar el path donde se encuentra su fichero mod_jk.conf.

5. A continuación edite el fichero workers.properties y realice los cambios siguientes:

  • Cambie jsp-hostname por el nombre que queramos dar al worker, es decir, al proceso de tomcat. Por ejemplo, escriba worker1. Son posibles configuraciónes complejas con varios procesos y balanceo de carga, pero no se tratan en este documento.

  • Cambie hostname por el nombre de la máquina en la que se ejecuta tomcat. Normalmente será la misma en la que está realizando estos cambios.

Por ejemplo, el fichero workers.properties resultante podría ser así:

worker.list=worker1

worker.worker1.port=8009

worker.worker1.host=mimaquina.miservidor.com

worker.worker1.type=ajp13

worker.worker1.lbfactor=1

6. A continuación editaremos el fichero mod_jk.conf. Probablemente ya encuentre algunas lineas escritas. Las más importantes son:

  • JkWorkersFile <fichero>: Indica la ruta donde encontrar el fichero workers.properties.
  • JkLogFile <fichero>: Indica la ruta donde guardar el fichero de log.
  • JkLogLevel <debug|warn|error|…>: Nivel de log.
  • JkMount <formato URL> <worker>: Indica qué URLs se dirigirán a qué worker. Las URLs que tengan la forma especificada por la directiva JkMount las procesará tomcat; el resto las tratará apache. Por ejemplo:

    • JkMount /*.jsp worker1

Hará que todas las URL del estilo http://www.servidor.com/fichero.jsp// pasen a ser procesadas por tomcat. Nótese que esto no implica que deba existir un fichero con extensión jsp en la raíz del servidor httpd. La URL se pasa a tomcat sin comprobaciones sobre la existencia de ficheros. Más adelante se discutirá como trata tomcat estas URLs.

·         JkMount /servlet/* worker1

Hará que todas las URL del estilo
http://www.servidor.com/servlet/nombreDeServlet// pasen a ser procesadas por tomcat. Como en el caso anterior, no implica que tenga que existir un directorio servlet en la raíz del servidor httpd. Nótese también que esta configuración hará que todos los elementos estáticos (páginas HTML, imágenes, etc) que estén dentro de /servlet también sean procesados por tomcat. Para evitar la pérdida de eficiencia que esto supone, puede incluirse en el fichero httpd.conf una linea del tipo:

Alias /servlet /usr/local/jakarta-tomcat5.0/webapps

Este es un ejemplo de fichero mod_jk.conf:

<IfModule mod_jk.c>

JkWorkersFile /usr/local/etc/apache2/workers.properties

JkLogFile  /var/log/apache2/mod_jk.log

JkLogLevel warn

JkMount /*.jsp worker1

JkMount /servlet/* worker1

JkMount /examples/* worker1

JkMount /jsp-examples/* worker1

JkMount /prueba/* worker1

</IfModule>

7. Ahora es un buen momento para comprobar que la configuración realizada hasta el momento es correcta. Pare los servicios de tomcat y apache y vuélvalos a iniciar: primero tomcat, luego apache. Revise los pasos anteriores en caso que se produjera algún error.

8. Se puede comprobar que tomcat se ejecuta correctamente abriendo la url http://servidor:8080 con un navegador. El puerto en el que escucha tomcat puede variar. En la mayoría de casos es el 8080, pero en algunos puede ser el 8180. Para comprobar la correcta configuración de mod_jk, puede abrir la url http://servidor/jsp-examples/. Si la página que se muestra se corresponde con el directorio webapps de tomcat, la configuración hasta el momento es correcta. Sinó, es necesario revisar los pasos anteriores.

NOTA: Tomcat tarda unos instantes en iniciarse incluso aunque su script de inicialización indique que lo ha hecho correctamente. Durante el proceso de inicialización, es normal que aparezcan errores 500 al cargar algunas URL. Si pasados unos minutos la situación no se normaliza, es conveniente consultar los logs en mod_jk.log.
[editar]

2 opiniones

Sencillo y entendible,pero.

Este recurso me ha ayudado muchisimo, aun asi tengo problemas para levantar el tomcat, hice todo lo indicado y al reiniciar apache me arroja este error:





httpd2-prefork: syntax error on line 119 of /etc/apache2/httpd. Conf: syntax error on line 30 of /etc/apache2/sysconfig. D/loadmodule. Conf: cannot load /usr/lib/apache2/mod_jk. So into server: /usr/lib/apache2/mod_jk. So: undefined symbol: apr_sockaddr_port_get



agradeceria la ayuda.
Excelente.

Rápido, fácil, conciso, qué más se puede pedir?.

Tutoriales relacionados con 'Configuración de apache y tomcat en 10 minutos'