mod_jk en Linux / Apache2-JBoss

1
25009

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:

  1. Instalación del servidor Web Apache2:
    Para la instalación y partiendo del fuente:

    1. [root@localhost root]# tar -xvzf httpd-2.0.55.tar.gz
    2. [root@localhost root]# cd httpd-2.0.55
    3. [root@localhost root]# ./configure
    4. [root@localhost root]# make
    5. [root@localhost root]# make install
    6. [root@localhost root]# groupadd jboss
    7. [root@localhost root]# useradd jboss -g jboss
    8. 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:

  2. Instalación del servidor de aplicaciones JBoss:
    Partiendo del fichero descargado:

    1. [root@localhost root]# tar -xvzf jboss-4.0.3SP1.tar.gz
    2. [root@localhost root]# mv jboss-4.0.3SP1 /usr/local
    3. [root@localhost root]# cd /usr/local
    4. 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″
    5. 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:

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

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

  3. Instalación del conector mod_jk:
    Una vez tenemos instalados ambos servidores, nos disponemos a instalar el conector jk_mod. Seguiremos los siguientes pasos:

    1. [root@localhost root]# tar -xvzf jakarta-tomcat-connectors-1.2.15-src.tar.gz
    2. [root@localhost root]# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
    3. [root@localhost native]# ./configure –with-apxs=/usr/local/apache2/bin/apxs
    4. [root@localhost native]# make
    5. [root@localhost native]# mv apache-2.0/mod_jk.so /usr/local/apache2/modules/
    6. 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
    7. 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>
      			
      			
    8. 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
      
      			
      			
    9. 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			
      			
      			
  4. 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:

       
mod_jk-1.2.15

       
Apache2-2.0.55

       
JBoss 4.0.3 RC1

       
j2se-1.4.2

1 COMENTARIO

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

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad