Usuario:ManuelRomero/ApacheTomcat

=Apache y Tomcat Colaborando=
 * Ahora tenemos en nuestro sistemas dos servicios que responden a solicitudes web, pero son diferentes
 * Debemos otorgar a cada uno su funcionalidad
 * Podemos hacer que convivan juntos de la siguiente manera, la idea es la siguiente
 * Todas las peticiones la recibe el servidor de apache
 * 1) Si es una solicitud web estática o php la resuelve apache
 * 2) Si es una solicitud de una aplicación web (jsp, servlet) se la entrega a tomcat para que resuelva el
 * Al final es apache el que devuelve la solicitud al cliente
 * Este funcionamiento es totalmente trasparente para el usuario
 * Este escenario también es útil para que apache balancee la carga entre diferentes servidores de aplicaciones web y aligerar el trabajo

Módulos necesarios

 * Necesitamos que apache incorpore una serie de módulos
 * Cargaremos estos módulos para hacer que sea apache un proxy
 * Para cargar módulos usamos el comando a2enmod apache to enabled module
 * Este comando sirve para cargar módulos nuevos
 * Ya sabemos que apache se gestiona por módulos
 * La lista de módulos que necesitamos son
 * proxy, proxyf_ajp, proxy_balancer

$a2enmod proxy $a2enmod proxyf_ajp $a2enmod proxy_balancer $ /etc/init.d/apache2 restart
 * A continuación rearrancamos el sistema

Directivas necesarias en apache
Usaremos las siguientes directivas
 * 1) ProxyPass
 * 2) ProxyPassReverse
 * 3) ProxyRequests
 * 4) ProxyPreserveHost.

ProxyPass

 * Esta directiva tiene dos parámetros
 * 1) El primero Indicamos las URL que delegamos (/)
 * 2) El segundo el servidor de aplicaciones que atenderá la solicitud
 * 3) En nuestro caso especificamos tomcat_cluster que está definido previamente

Concepto del proxy y el protocolo ajp

 * En lugar de usar http para comunicar apache-tomcat usamos ajp
 * Es un protocolo interno, veloz y que usa conexiones TCP persistentes
 * Funciona en el puerto 8009
 * Proxy balancer://tomcat_cluster
 * definimos el cluster con nombre tomcat_cluster


 * BalancerMember ajp://localhost:8009
 * Se define un miembro a tomcat_cluster
 * protocolo ajp
 * IP localhost' o 127.0.0.1
 * Puerto 8009 que es el que por defecto usa tomcat


 * ProxyPass / balancer://tomcat_cluster/
 * "/" y todo lo que cuelgue de ella, sea pasado al cluster del tomcat para que lo procese él.


 * Order allow,deny
 * Especifica el orde de asignación de permisos
 * Primero las especificaciones de permisos allow all'
 * Posteriormente restricciones especificadas en la opción deny

http://localhost:8080/ en lugar de ajp://localhost:8009
 * Si en lugar de ajp queremos usar http deberíamos especificar

Parte para apache, otra para tomcat

 * Queremos que apache devuelva los contenidos estáticos
 * Estas peticiones deben comenzar por /static/
 * Para que lo haga apache el segundo parámetro de esta directiva debe ser una negación !.

Configuración de virtualhost

 * Debemos modificar el fichero de configuración de virtualhost
 * Editamos /etc/apache2/sites-enabled/000-default
 * Añadimos los siguientes elementos

Conceptos de los parámetros

 * ProxyPreserveHost On
 * Mantiene la cabecera http host original, en vez de reescribirla.


 * "DocumentRoot" y "" para que apunten a /var/www/ROOT

=Estructura y despliegue de una aplicación web=