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:
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.