viernes, 17 de mayo de 2013

Configurar Apache como "proxy" de Tomcat.



Actualmente, cuando instalamos un tomcat, queremos ponerle un apache como “proxy”, el apache recibe las peticiones en el puerto 80 y las redirige a tomcat.

Para ello, instalaremos un apache y un tomcat, y haremos sus configuraciones independientes para que funcionen * y como siempre utilizar las guías básicas de bastionado para que sean seguras.

Una vez hecho eso, habilitaremos los siguientes módulos en apache:

proxy_ajp.load
proxy.conf
proxy.load

Para ello, primero revisaremos que no están ya habilitados.
En la ruta /etc/apache2/ tenemos 2 directorios llamados:

mods-available
mods-enabled

En mods-enabled se encuentran los módulos ya habilitados, si no están los nuestros, iremos al directorio mods-available y los habilitaremos, el comando a utilizar es:

a2enmod [nombre_módulo]

Cada vez que lo habilitemos, nos pedirá reiniciar el apache para activarlos, por lo que cuando finalicemos con todos los módulos, reiniciaremos el apache.

Una vez reiniciado, verificamos en mods-enabled que están nuestros módulos.

Ahora pasaremos a la configuración de la “conexión” entre apache y tomcat, para ello, simplemente en el directorio /etc/apache2/sites-available crearemos el fichero del proyecto que necesitemos y le añadiremos la siguiente información:

       ServerName moni.mandarina.com
       ProxyPass /  ajp://localhost:8009/
       ProxyPassReverse / ajp://localhost:8009/
       ErrorLog ${APACHE_LOG_DIR}/monimandarina_error.log
       LogLevel warn
       CustomLog ${APACHE_LOG_DIR}/monimandarina_access.log combined

Hemos creado un vhost con la url a la que debe responder el servicio, con las líneas ProxyPass y ProxyPassReverse, le estamos indicando que “dirija” la información a tomcat.
Haremos un link simbolico desde sites-enabled hacía el vhost que acabamos de crear.

Ahora recargaremos la información del apache

#/etc/init.d/apache2 reload

Si todo está OK y tenemos nuestras configuraciones bien hechas, deberían funcionar correctamente las aplicaciones de tomcat sobre el puerto 80 y a través de Apache.


PD: Estoy aprendiendo a usar Apache, es posible que me falte algo en la configuración, pero juraría que no.

2 comentarios:

Unknown dijo...

Buen articulo!!!!

Yo como proxy no lo he utilizado nunca, pero si que he usado mod_jk para hacer lo mismo que tú junto con mod_security y es una pasada, pruebalo!!!!!

Madrikeka dijo...

Gracias por la info!
Con mod_security me meteré en breve, así que algo escribiré!

También le echaré un vistazo a mod_jk, lo desconozco!

Aunque he de decir, que en estas configuraciones de Apache estoy un poco pez, así que poco a poco!!