Usar Apache como frontal de Tomcat en Ubuntu Server 12.04
Se presupone que Tomcat está instalado por defecto en la misma máquina. Instalar los siguientes paquetes si no estuviesen disponibles.
# apt-get install g++ apache2-prefork-dev
Descargar y descomprimir el código fuente de Tomcat Connector en la carpeta Builds.
# cd $REPO/Builds # wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.37-src.tar.gz # tar xvzf tomcat-connectors-1.2.37-src.tar.gz # cd tomcat-connectors-1.2.37-src
Obtener la versión de Apache instalada en el sistema.
# apt-cache show apache2 Package: apache2 Priority: optional Section: httpd Installed-Size: 36 Maintainer: Debian Apache Maintainers Architecture: i386 Version: 2.2.16-6+squeeze7 ... ...
# cd native # ./configure --with-apxs=/usr/bin/apxs2 # make
Comprobar el binario generado.
# ls -l apache-2.0/mod_jk.so -rwxr-xr-x 1 root root 428280 jul 29 08:38 apache-2.0/mod_jk.so
Copiar el binario en la ruta dónde se encuentra el resto de módulos de Apache.
# cp apache-2.0/mod_jk.so /usr/lib/apache2/modules/
Fichero workers.properties.
# cd /etc/apache2 # vi workers.properties
El contenido de dicho fichero será el siguiente:
worker.list=worker1 worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009
Crear el fichero /etc/apache2/mods-available/tomcat_connector.load con el siguiente contenido:
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
Crear el fichero /etc/apache2/mods-available/tomcat_connector.conf con el siguiente contenido:
<IfModule jk_module> # Tomcat Connector custom properties JkWorkersFile /etc/apache2/workers.properties JkLogFile /var/log/apache2/jk.log JkShmFile /var/log/apache2/mod_jk.shm JkLogLevel error JkMount /manager/* worker1 JkMount /host-manager/* worker1 </IfModule>
Crear los enlaces en la ruta /etc/apache2/mods-enabled.
# cd /etc/apache2/mods-enabled # ln -s ../mods-available/tomcat_connector.load . # ln -s ../mods-available/tomcat_connector.conf .
Modificar el fichero /etc/apache2/sites-available/default. Añadir la siguiente línea dentro del tag VirtualHost.
# service apache2 restart
Para probar que todo ha funcionado correctamente accedemos a la aplicación de administración a través del puerto de Apache (80) en lugar de hacerlo por el puerto de Tomcat (8080). Suponiendo que todo el montaje esté en localhost, lo haríamos accediendo a:
http://localhost/manager/html