Como instalar Tomcat 7 y Apache2 usando mod_jk en Ubuntu 13.04

27 de marzo, 2014 @ 11:01 — 15 comentarios

En esta guía vamos a explicar como podemos instalar Apache 2 junto a Tomcat 7 usando mod_jk. Se trata de una configuración bastante sencilla y que presenta muchos beneficios.

En esta configuración el servidor web Apache es el encargado de recibir y devolver todas las peticiones HTTP de los usuarios. Apache se encarga de redirigir las peticiones necesaria a Tomcat, mientras que los archivos estáticos y similares los sirve Apache directamente.

Para crear esta guía nos hemos basado en la plantilla cloud Ubuntu 13.04 x64 que ofrecemos en nuestro servicio Cloud VPS.

1 - Preparativos

Antes de empezar, tienes que hacer acceder a tu servidor mediante SSH. La guía asume que estás logueado como root.

En un nuevo servidor, lo primer que debes hacer siempre es actualizar los paquetes, para ello:

apt-get -y update
apt-get -y upgrade

Y dado que casi siempre se instalará un nuevo kernel, reiniciamos el servidor para empezar a usar el nuevo kernel:

shutdown -r now

2 - Instalación de Tomcat

Instalamos Tomcat 7:

apt-get -y install tomcat7

Ahora, para verificar que Tomcat funciona correctamente, creamos una aplicación de prueba. Primero creamos la estructura de directorios:

cd /var/lib/tomcat7/webapps
mkdir helloworld

Y por último, creamos un archivo index.jsp:

nano helloworld/index.jsp

En el que pegaremos el siguiente código:

<HTML>
 <HEAD>
  <TITLE>Hello World</TITLE>
 </HEAD>
 <BODY>
  <H1>Hello World</H1>
  Today is: <%= new java.util.Date().toString() %>
 </BODY>
</HTML>

Ahora verificamos que Tomcat este funcionando correctamente, para ello acceder con el navegador web a la siguiente dirección:

http://[IP DEL SERVIDOR]:8080/helloworld/

Donde veremos algo como:

Hello World en Tomcat

3 - Instalación de Apache y mod_jk

Instalamos Apache:

apt-get -y install apache2

Luego instalamos el conector mod_jk de Apache:

apt-get -y install libapache2-mod-jk

4 - Conectar Apache y Tomcat con mod_jk

A continuación debemos asegurarnos de que Tomcat tiene activado el conector con el protocolo binario AJP, para lo que abrimos el archivo server.xml:

nano /etc/tomcat7/server.xml

Y verificamos la existencia de una línea similar a la siguiente y nos aseguramos de que no este comentada:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Ahora creamos el archivo worker.properties:

nano /etc/apache2/workers.properties

Donde pegamos lo siguiente:

# Definir un worker usando ajp13 
worker.list=worker1 
# Definir las propiedades del worker (ajp13) 
worker.worker1.type=ajp13 
worker.worker1.host=localhost
worker.worker1.port=8009

Y ahora le decimos a Apache que user el archivo worker-properties recien creado:

nano /etc/apache2/mods-available/jk.conf

Donde debemos modificar el valor del parámetro JkWorkersFile para que quede así:

JkWorkersFile /etc/apache2/workers.properties

Por último, modificamos la configuración del VirtualHost predeterminado de Apache, para definir las URLs que debe pasar a través de Tomcat:

nano /etc/apache2/sites-enabled/000-default

Preservando la configuración del VirtualHost, añadimos la línea JkMount:

<VirtualHost *:80>
.......................................
.......................................
JkMount /helloworld* worker1
</VirtualHost *:80>

Ahora reinicia Apache y Tomcat:

/etc/init.d/tomcat7 restart
/etc/init.d/apache2 restart

Y accede con tu navegador web a la siguiente dirección para verificar que todo funciona correctamente:

http://[IP DEL SERVIDOR]/helloworld/