Como instalar Tomcat 7 y Apache2 usando mod_jk en Ubuntu

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:

<code>apt-get -y update
apt-get -y upgrade</code>

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

<code>shutdown -r now</code>

2 – Instalación de Tomcat

Instalamos Tomcat 7:

<code>apt-get -y install tomcat7</code>

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

<code>cd /var/lib/tomcat7/webapps
mkdir helloworld</code>

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

<code>nano helloworld/index.jsp</code>

En el que pegaremos el siguiente código:

<code class=" language-php"><span class="token markup"><span class="token tag"><span class="token punctuation">&lt;</span>HTML<span class="token punctuation">&gt;</span></span></span>
 <span class="token markup"><span class="token tag"><span class="token punctuation">&lt;</span>HEAD<span class="token punctuation">&gt;</span></span></span>
  <span class="token markup"><span class="token tag"><span class="token punctuation">&lt;</span>TITLE<span class="token punctuation">&gt;</span></span></span>Hello World<span class="token markup"><span class="token tag"><span class="token punctuation">&lt;/</span>TITLE<span class="token punctuation">&gt;</span></span></span>
 <span class="token markup"><span class="token tag"><span class="token punctuation">&lt;/</span>HEAD<span class="token punctuation">&gt;</span></span></span>
 <span class="token markup"><span class="token tag"><span class="token punctuation">&lt;</span>BODY<span class="token punctuation">&gt;</span></span></span>
  <span class="token markup"><span class="token tag"><span class="token punctuation">&lt;</span>H1<span class="token punctuation">&gt;</span></span></span>Hello World<span class="token markup"><span class="token tag"><span class="token punctuation">&lt;/</span>H1<span class="token punctuation">&gt;</span></span></span>
  Today is<span class="token punctuation">:</span> <span class="token markup">&lt;%= new java.util.Date().toString() %&gt;</span>
 <span class="token markup"><span class="
token tag"><span class="token punctuation">&lt;/</span>BODY<span class="token punctuation">&gt;</span></span></span>
<span class="token markup"><span class="token tag"><span class="token punctuation">&lt;/</span>HTML<span class="token punctuation">&gt;</span></span></span></code>

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:

<code>apt-get -y install apache2</code>

Luego instalamos el conector mod_jk de Apache:

<code>apt-get -y install libapache2-mod-jk</code>

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:

<code>nano /etc/tomcat7/server.xml</code>

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

<code>&lt;Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /&gt;</code>

Ahora creamos el archivo worker.properties:

<code>nano /etc/apache2/workers.properties</code>

Donde pegamos lo siguiente:

<code># 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</code>

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

<code>nano /etc/apache2/mods-available/jk.conf</code>

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

<code>JkWorkersFile /etc/apache2/workers.properties</code>

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

<code>nano /etc/apache2/sites-enabled/000-default</code>

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

<code>&lt;VirtualHost *:80&gt;
.......................................
.......................................
JkMount /helloworld* worker1
&lt;/VirtualHost *:80&gt;</code>

Ahora reinicia Apache y Tomcat:

<code>/etc/init.d/tomcat7 restart
/etc/init.d/apache2 restart</code>

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

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

Fuente: http://ayuda.guebs.com/instalar-tomcat7-apache2-mod_jk-ubuntu/