Instalación de mod_jk en la plataforma linux Apache2-JBoss
Tanto en mi proyecto fin de carrera como en Autentia siempre estamos buscando soluciones a
problemas comunes en varias plataformas, en este caso, la instalación del mod_jk
sobre cualquier distribución linux.
Introducción:
El conector «mod_jk» se encarga de enviar las peticiones
que nosotros configuremos desde un servidor web a un servidor de aplicaciones. Esta estrategia se suele utilizar para liberar de carga
al servidor de aplicaciones; para ello dejaremos que la parte estática de nuestra aplicación web sea procesada por el servidor
apache, mientras que la parte dinámica sea gestionada por el servidor de aplicaciones
Jboss. También se podría aplicar para dejar nuestro servidor de aplicaciones oculto.
En este caso de ejemplo tan solo tendremos acceso a las consolas de administración de Jboss.
Como aclaración inicial, partiremos de una instalación de los programas por separado de cada distribución de linux.
Para ello necesitamos la descarga del siguiente software (ver los enlaces a pie
de página):
- Compilador gcc instalado para compilar los fuentes de apache2 y de mod_jk.
- Distribución de J2SE 1.4.X (no es recomendable usar todavía la 1.5 con JBoss).
- Servidor Web Apache2 (en este tutorial utilizaremos la versión 2.0.55).
- Conector mod_jk (en este tutorial usaremos la versión 1.2.15).
- Servidor de aplicaciones JBoss (en este tutorial utilizaremos la versión
4.0.3 SP1).
NOTA: Todos los pasos los haremos como root y las distribuciones de cada componente estarán descargadas en el directorio
/root .
Seguiremos el siguiente orden de instalación:
- Instalación del servidor Web Apache2:
Para la instalación y partiendo del fuente:- [root@localhost root]# tar -xvzf httpd-2.0.55.tar.gz
- [root@localhost root]# cd httpd-2.0.55
- [root@localhost root]# ./configure
- [root@localhost root]# make
- [root@localhost root]# make install
- [root@localhost root]# groupadd jboss
- [root@localhost root]# useradd jboss -g jboss
- Ahora editamos el fichero «/usr/local/apache2/conf/httpd.conf» y modificamos los parámetros «user» y «group» por «jboss».
Una vez finalizada la instalación probamos el servidor web como se muestra a continuación:
- Instalación del servidor de aplicaciones JBoss:
Partiendo del fichero descargado:- [root@localhost root]# tar -xvzf jboss-4.0.3SP1.tar.gz
- [root@localhost root]# mv jboss-4.0.3SP1 /usr/local
- [root@localhost root]# cd /usr/local
- Ahora editamos el archivo «/usr/local/jboss-4.0.3SP1/bin/run.conf» y descomentamos la línea que contiene la variable JAVA_HOME y la establecemos en nuestro directorio de instalación de java. En nuestro caso será:
JAVA_HOME=»/usr/java/j2sdk1.4.2_10″ - Editamos el fichero «/usr/local/jboss-4.0.3SP1/server/default/deploy/jbossweb-tomcat55.sar/server.xml»
y añadimos el nombre de nuestro worker como se muestra en la imagen: - Editamos el archivo «/usr/local/jboss-4.0.3SP1/server/default/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml»
y activamos el atributo UseJK como se muestra en la imagen: - Asignamos este directorio al usuario creado anteriormente (jboss):
[root@localhost root]# chown -R jboss:jboss /usr/local/jboss-4.0.3SP1/
Una vez finalizada la instalación del servidor de aplicaciones realizamos la prueba de ejecución. Debemos obtener una pantalla como esta o parecida:NOTA: para parar el servidor nos basta con pulsar CTRL+C
- Instalación del conector mod_jk:
Una vez tenemos instalados ambos servidores, nos disponemos a instalar el conector jk_mod. Seguiremos los siguientes pasos:- [root@localhost root]# tar -xvzf jakarta-tomcat-connectors-1.2.15-src.tar.gz
- [root@localhost root]# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
- [root@localhost native]# ./configure –with-apxs=/usr/local/apache2/bin/apxs
- [root@localhost native]# make
- [root@localhost native]# mv apache-2.0/mod_jk.so /usr/local/apache2/modules/
- Editamos el archivo «/usr/local/apache2/conf/httpd.conf» y añadimos al final del todo la siguiente línea:
Include conf/mod-jk.conf - Creamos el archivo «/usr/local/apache2/conf/mod-jk.conf» con el siguiente contenido:
# Cargamos el modulo LoadModule jk_module modules/mod_jk.so # workers.properties JkWorkersFile conf/workers.properties # logs JkLogFile logs/mod_jk.log # jk nivel log [debug/error/info] JkLogLevel info # formato de log JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" # JkOptions JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormat JkRequestLogFormat "%w %V %T" # Archivo de URI de aplicaciones JkMountFile conf/uriworkermap.properties # Para shared memory. JkShmFile logs/jk.shm # jkstatus <Location /jkstatus/> JkMount status Order deny,allow Deny from all Allow from 127.0.0.1 </Location>
- Creamos el archivo «/usr/local/apache2/conf/workers.properties» con el siguiente contenido:
# Define una lista de workers que se usaran # para mapear las peticiones worker.list=loadbalancer,status # Definimos el Nodo1 worker.node1.port=8009 worker.node1.host=localhost worker.node1.type=ajp13 worker.node1.lbfactor=1 worker.node1.cachesize=10 # Definimos el Nodo2 worker.node2.port=8009 worker.node2.host= localhost worker.node2.type=ajp13 worker.node2.lbfactor=1 worker.node2.cachesize=10 worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=node1,node2 worker.loadbalancer.sticky_session=1 worker.status.type=status
- Creamos el archivo «/usr/local/apache2/conf/uriworkermap.properties» con el siguiente contenido:
# Contextos de las aplicaciones que queremos que tengan acceso /jmx-console=loadbalancer /jmx-console/*=loadbalancer /web-console=loadbalancer /web-console/*=loadbalancer
- Prueba de la instalación:
http://localhost/jmx-console/
http://localhost/web-console/
Conclusión:
Mediante esta técnica, podemos añadir aplicaciones web con tan solo insertar una entrada
en el archivo con el context-root de nuestras aplicaciones y los recursos a solicitar.
De todas formas ya sabéis donde
encontrarnos si necesitáis cursos o soluciones personalizadas para vuestro problema.
Enlaces:
Apache2-2.0.55
j2se-1.4.2
Hola, una pregunta… ¿hay mucha diferencia si yo quiero instalar un JBoss 5?, lo que quiero es instalar un cluster por ahora quiero probar con dos servers JBoss5 y q el apache me haga el balanceo, otra pregunta como puedo probar q si se estan respaldando una aplicacion a la otra? bueno no quiero que piensen q soy peresozo pero si tienen info, tutoriales etc, agradeceria mucho la información