* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

Como conectar el servidor Web Apache y Tomcat con mod_jk - Parte 1

Introducción:

El objetivo de este tutorial es la instalación y configuración de la infraestructura necesaria para instalar con éxito un servidor de aplicaciones Web java (Tomcat) integrado con Apache, aunque Tomcat puede ejercer sin problemas de servidor Web no está tan optimizado para ello como apache.

En la segunda parte añadiremos múltiples instancias de Tomcat para dotar de alta disponibilidad al servidor de aplicaciones,. haciendo uso de mod_jk como balanceador de carga y failover.

Requisitos:

Partimos de un sistema Linux basado en Mandriva, ya tenemos un servidor apache instalado por lo que necesitamos: un jdk, a ser posible la última versión de los binarios de tomcat y mod_jk para conectar con apache via ajp.

[root@chisme ~]# urpmq -i mod_jk
Name : mod_jk
Version : 1.2.6
Release : 3.1mdk
Group : Development/Java
Size : 150405 Architecture: i586
Summary : Tomcat mod_jk connector for Apache
[root@chisme ~]# urpmq -i tomcat5
Name : tomcat5
Version : 5.0.30
Release : 9.1mdk
Group : Development/Java
Size : 14538145 Architecture: i586
Summary : Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API

La ultima versión de mod_jk es la 1.2.15 y la última versión estable de tomcat la 5.5.15, por lo que nos decantamos por compilar “a mano” mod_jk y utilizar los últimos binarios de tomcat de su web.
Por lo tanto necesitamos
1. apache 2.0.54-13d ( el último estable en mandriva 2006)
2. apache-devel 2.0.54-13d ( para compilar mod_jk
3. apache-tomcat-5.5.15.tar.gz
4. jakarta-tomcat-connectors-1.2.15-src.tar.gz
5. jdk-1_5_0_06-linux-i586.bin

Asumimos que ya se han instalado los paquetes de apache mediante urpmi, hemos instalado la máquina de java en /opt/java5, y hemos descomprimido los binarios de Tomcat en /opt/tomcat

Compilando e instalando mod_jk.

Antes de sumergirnos en la compilación de mod_jk quisiera aclarar una situación que me tuvo confuso durante mucho tiempo, en el mundo de los conectores de Tomcat, existe mod_jk y mod_jk2. En principio lo más lógico es pensar que mod_jk2 es la opción más acertada al tener un número mayor de versión, pero al contrario mod_jk2 está discontinuado para incluirse en el “core” del próximo apache 2.1 por lo tanto usaremos mod_jk.


[root@chisme tmp]# tar -zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
[root@chisme tmp]# cd jakarta-tomcat-connectors-1.2.15-src/jk/native/
[root@chisme native]# ./configure --with-axps=/usr/sbin/axps
[root@chisme native]# make && make install

La opción de la configuración de with-axps=/usr/sbin/apxs permite construir un nuevo modulo de apache sin necesidad de los fuentes la utilidad apxs viene dentro del paquete apache-devel, si todo va bien tendremos el módulo compilado en /usr/lib/httpd/module

Una vez que tenemos el modulo de apache compilado tenemos que cargarlo, de momento crearemos un fichero de configuración 90_mod_jk.conf con nuestro editor favorito en /etc/httpd/modules.d siguiendo la nomenclatura de mandriva existe una directiva en httpd.conf Include modules.d/*.conf que carga todos los ficheros que existan en este directorio con el siguiente contenido.

# Cargamos el modulo
LoadModule jk_module modules/mod_jk.so

Llegados a este punto podemos reiniciar el servidor apache y comprobar que arranca perfectamente cargando este nuevo módulo.

Arrancando tomcat

Primero crearemos el usuario propietario de la instancia de tomcat

[root@chisme]# useradd tomcat -d /opt/tomcat
[root@chisme]# chown tomcat:tomcat -R /opt/tomcat
[root@chisme]# su – tomcat

Editamos el fichero .bash_profile del usuario y introducimos las variables necesarias para el arranque del servidor.

export CATALINA_HOME=/opt/tomcat
export JAVA_HOME=/opt/java5
export PATH=$JAVA_HOME/bin:$HOME/bin:$PATH

Hacemos logout para que tengan efecto los cambios y arrancamos la instancia de tomcat

[root@chisme]# exit
[root@chisme]# su – tomcat
[root@chisme]#./bin/startup.sh

Comprobamos el correcto funcionamiento visualizando en nuestro navegador la pagina de bienvenida de tomcat en http://localhost:8080

Ahora crearemos un script de arranque tomcat para colocar en /etc/init.d

#!/bin/bash
# tomcat
# chkconfig: 345 92 8
# description: Servidor tomcat
#
# processname: tomcat
# pidfile: /var/run/tomcat.pid

RETVAL=$?
CATALINA_HOME="/opt/tomcat"
TOMCAT_USER=”tomcat”

case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
/bin/su -c $CATALINA_HOME/bin/startup.sh $TOMCAT_USER
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
/bin/su -c $CATALINA_HOME/bin/shutdown.sh $TOMCAT_USER
fi
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac

exit $RETVAL

Añadimos mediante chkconfig el arranque de la instancia de tomcat en los runslevel 3 y 5

[root@chisme}# chkconfig –level 35 tomcat on

Haciendo que apache y tomcat se entiendan

Configurando mod_jk

Uno de los archivos de configuración más importantes de mod_jk junto con i 90_mod_jk.conf es el fichero workers.properties. Colocaremos este archivo junto con los de configuración de apache en /etc/httpd/conf. Apache utiliza el fichero workers.propertis para definir donde encontrar las instancias de tomcat, en principio solamente una.

worker.list=worker1
# Establecemos las propiedades para el worker
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

worker.list es una lista separada por comas de los nombres de los workers en este caso solamente uno, podríamos tener más workers definidos en el archivo y no serían usados si no se encuentran en esta lista.
Los workers se tienen como mínimo tres atributos tipo, host y puerto., que se definen de la siguiente forma worker.nombre.atributo, en nuestro el tipo de conector es ajp13 el host (localhost) se va a ejecutar en la misma máquina que apache y el puerto de escucha de conector ajp.

Configurando Apache

Ahora debemos de decirle al servidor web donde encontrar el archivo workers.properties , donde guardar el log de mod_jk y que uri tiene que resolver el servidor de aplicaciones, añadimos las siguientes lineas al archivo /etc/httpd/modules.d/90_mod_jk.conf

JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /var/log/httpd/jk.log
JkLogLevel error
JkMount /jsp-examples/* worker1

Configurando tomcat

Tomcat utiliza un archivo de configuración llamado server.xml situado en $CATALINA_HOME/conf/ para determinar la configuración de los conectores, puertos de escucha etc..
Con nuestro editor favorito editamos este fichero, en el que vamos a realizar varios cambios, primero modificaremos el puerto de shutdow de 8005 a 9005 ( en principio si no vamos a tener más de una instancia de tomcat funcionando en esa máquina no sería necesario pero así vamos preparándonos para la segunda parte de este articulo

En segundo lugar comentaremos la definición del conector http ya que no vamos a usarlo

Por último verificamos que el conector ajp escucha en el puerto adecuado ( el que pusimos en el fichero workers.properties)

Probando, probando …Paramos el servidor apache service httpd stop.
Paramos el servidor tomcat service tomcat stop.
Arrancamos el servidor tomcat service tomcat start
Arrancamos el servidor apache service httpd start
Et voila! si colocamos en el navegador http://localhost/jsp-examples y vemos los ejemplos de jsp de tomcat hemos logrado nuestro objetivo.





bersuit.vera
InsaneCrew

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.


Gravatar de toomany

# 14672 Te lo has currado colega..

Gracias, muchas gracias por el buen tutorial, el empeño y la molestia tomada para que otras personas tengan "allanado" el camino.

Have a nice day ;-)
TooManySecrets

Have a nice day ;-)
TooManySecrets



Gravatar de capi_x

# 14692 Asi me gusta nenitas

Muy guapo el tutorial.
Espero ansioso la segunda parte ;-)

Buen trabajo.
--
JID: capi_x@capix.sytes.net



Gravatar de bersuit

# 14694 Gracias

Bersuit Vera mini-BOFH
Geek by nature, linux for choice, mandriva of course
Out of Memory

Bersuit Vera BOFH
Geek by nature, linux for choice, mandriva of course
InsaneCrew



Gravatar de SinnerBOFH

# 14716 aplausos

bersuit,

Peazo de tutorial, lo pondre a prueba un dia de estos, a ver que tal responde el invento.

Desde la guarida de los BOFHs de BlogDrake, te envio mis mas sinceros aplausos, junto con una bonita alfombrilla para raton, decorada con piel de gatitos XDD

Salut,
Sinner
--

Salut,
Sinner


Linux User # 89976 - Blog de SinnerBOFH

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.