SlideShare una empresa de Scribd logo
1 de 16
IES Gran Capitán
Módulo: Despliegue de Aplicaciones Web
Ciclo Formativo de Grado Superior “Desarrollo de aplicaciones Web”

Práctica 12: Integración de Apache Server
con Tomcat

Fecha entrega: 13/01/2014
Autor: Pablo Medina Suárez

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://informatica.iesgrancapitan.org informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

2

1 ÍNDICE
1

ÍNDICE

2

2

INTRODUCCIÓN

3

3

DESARROLLO DE LA PRÁCTICA

4

PREGUNTAS:
9
3.1 ¿QUÉ NUEVO MÓDULO DE APACHE HAS NECESITADO INSTALAR Y ACTIVAR?
9
3.2 DEFINE WORKER. CREA UN WORKER PARA LAS PRUEBAS QUE SE LLAME WORKER[TUAPELLIDO].
9
3.3 ¿QUÉ FICHEROS DE CONFIGURACIÓN VAS A TENER QUE MODIFICAR? CAPTURA PANTALLAS DE
TODOS CON LA PARTE QUE HAS MODIFICADO.
9
3.4 ¿QUÉ FICHEROS DE LOG HAS REVISADO? CAPTURA PANTALLAS DE TODOS ELLOS TANTO SI SE
MUESTRA ALGÚN ERROR COMO SI NO.
10
3.5 INDICA LOS ERRORES QUE HAN IDO APARECIENDO Y CÓMO LOS HAS SOLUCIONADO.
11
3.5.1 ERROR: /EXAMPLES/ DENTRO DE OTRO DIRECTORIO:
11
3.5.2 ERROR: APACHE NOS DA UN ERROR AL INICIARLO:
11
3.5.3 ERROR: COULD NOT FIND WORKER JK-MANAGER Y JK-STATUS:
12
3.5.4 ERROR: LA PÁGINA NOS DEVUELVE UN ERROR 503 (SERVICIO NO DISPONIBLE):
13
3.5.5 ERROR: LA PÁGINA NOS DEVUELVE UN ERROR 404 (NO ENCONTRADO):
13
3.6 OPCIONAL: INVESTIGA EN QUÉ CASOS PUEDE SER INTERESANTE DEFINIR VARIOS "WORKERS". 13
3.7 OPCIONAL: PONLO EN PRÁCTICA CONFIGURANDO UN WORKER MÁS PARA OTRO DE TUS
SERVIDORES WEB VIRTUAL.
13
3.8 OPCIONAL: INVESTIGA TAMBIÉN CÓMO USAR "JKMOUNTCOPY ON" EN EL FICHERO JK.CONF
PARA EVITAR TENER QUE COPIAR LA CONFIGURACIÓN SOBRE LOS FICHEROS JK_ESTATUS, JK_LOG,
ETC A CADA SERVIDOR WEB VIRTUAL. PRUÉBALO EN TU CONFIGURACIÓN.
13
4

CONCLUSIÓN

15

5

BIBLIOGRAFIA

16

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

2

3

INTRODUCCIÓN
Objetivo:
Usar Apache para servir las páginas estáticas y Tomcat para ejecutar servlets.

Al acceder desde el navegador a un servlet http://localhost/examples/[pagina con
servlets] será Apache el que detecta que se trata de un server y que necesita la ayuda de Tomcat
para ejecutarlo de modo que reenvía la petición a Tomcat. Entonces estaremos haciendo uso
de Tomcat como contenedor pero sin acceder directamente a él (indicando el puerto de Tomcat
como hicimos en la práctica anterior):
http://localhost:8080/examples/[pagina con servlets]

Requisitos:
- Tener Tomcat instalado.
Pasos:
Lee la documentación al respecto subida a moodle (documento paso a paso).
Documenta la instalación, configuración y ejecución respondiendo al mismo tiempo a
las preguntas siguientes.
Nota: la última pregunta es opcional y subirá la nota de la práctica.

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

4

3 DESARROLLO DE LA PRÁCTICA
Antes de comenzar, iniciamos en el servidor tanto el servicio Apache como el de
Tomcat, y comprobamos que funcionan correctamente. A su vez, recordamos las rutas donde
están instalados los servicios y los programas necesarios, como Java, etc.
Vemos que comprueban correctamente, así que vamos a comprobar si Apache es capaz
de ejecutar algún Servlet por sí mismo (lo cual comprobaremos que no será así).
Accedemos al directorio de servlets de ejemplo de Tomcat y copiamos el directorio de
aplicaciones de ejemplo de Tomcat (examples) en el directorio de Apache:

Ahora abrimos el navegador y accedemos a la dirección correspondiente para
comprobar si funciona la aplicación:

Como puede verse en la imagen, el resultado obtenido no es el deseado, porque el
navegador nos ha mostrado el código del documento en lugar del resultado, ya que no ha sido
interpretado por el servidor. Por lo tanto, tenemos que encontrar la forma de que Apache recurra
a Tomcat para ejecutar las aplicaciones.

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

5

Tenemos que instalar y activar el módulo jk (libapache2-mod-jk), así que abrimos un
terminal e introducimos lo siguiente, reiniciando además el servicio de Apache:

Hecho lo anterior, comprobamos que nos han aparecido dos archivos nuevos, jk.conf y
jk.load, tanto en el directorio mods-available como en mods-enabled del servicio Apache:

Ya tenemos instalado el módulo necesario, lo siguiente a realizar las configuraciones
necesarias en los ficheros de configuración.
En primer lugar, abrimos el fichero /etc/libapache2-mod-jk/workers.properties y
modificamos las siguientes líneas:

Reemplazamos por la ruta donde está instalado Tomcat

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

6

Reemplazamos por la ruta de instalación de Java

Añadido de un nuevo worker, con el que trabajaremos en el desarrollo de ésta
práctica

Configuraciones realizadas para el nuevo worker, nótese que el puerto utilizado por
nuestro worker debe ser el mismo que uno de los utilizados en el fichero server.xml
Al haber incluido un nuevo worker, debemos hacer la siguiente modificación en el
fichero server.xml de Tomcat:

Aquí puede verse la parte del archivo de configuración server.xml, donde se ve que el
puerto utilizado es el 8009 y se ha creado otro conector para el 8010

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

7

Guardamos los cambios y ahora abrimos y pasamos a configurar el fichero
/etc/apache2/mods-enabled/jk.conf, donde hacemos los siguientes cambios:

Por orden: se comenta la línea donde se indica la ruta del fichero workers.properties, se
indica dónde y qué nombre tendrá el fichero de log de jk, y cuál el nivel de log (error, para
que muestre errores)
NOTA: he comentado la línea JkWorkersFile debido a que la añadiremos más adelante
para evitar un error causado al utilizar un Virtual Host.
Abrimos el fichero de configuración del Virtual Host desde el cual queremos ejecutar
los servlets, en este caso, el sitio por defecto (default) y añadimos lo siguiente:

Entre la etiqueta VirtualHost añadimos la directiva JkMountCopy, para cargar las
direcciones montadas en httpd.conf, que serán interpretadas por el servidor Tomcat, en lugar
de por Apache.
Por último, se añade la directiva JkMountCopy On, que veremos en la pregunta
correspondiente el motivo por el que lo he utilizado.

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

8

Ahora, abrimos el fichero /etc/apache/httpd.conf, en el cual añadimos lo siguiente:

Se emplea la directiva Include para que se carguen las configuraciones del módulo
jk, contenidas en el fichero indicado. E insertamos la línea que se comentó anteriormente
para evitar un error con Apache.
Montamos con JkMount los directorios cuyos documentos serán interpretados por
Tomcat.
Con el uso de la directiva JkMount le indicamos al servidor qué direcciones serán
interpretadas por el servidor Tomcat, en este caso, todos los documentos con extensión .jsp y
todo lo contenido en el directorio /examples/ de nuestro servidor.
A continuación, le indicamos el worker que se encargará de servir las aplicaciones, en
este caso, el que hemos creado anteriormente.
Ya sólo nos queda reiniciar tanto el servicio Tomcat como el servidor Apache para que
los cambios se tengan en cuenta y probamos de nuevo a ejecutar alguna de las servlets. Por lo
que abrimos el navegador y, utilizando la dirección http://localhost/examples/, elegimos alguna
de las aplicaciones:

Otra de las aplicaciones de ejemplo:

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

9

Y con esto, ¡ya tenemos integrado nuestro servidor Apache con Tomcat para servir
servlets!

PREGUNTAS:
3.1

¿Qué nuevo módulo de apache has necesitado instalar y activar?

Se ha instalado y activado el módulo jk (libapache2-mod-jk). Con esto, es posible
establecer conexiones entre servidores utilizando el protocolo AJP.

3.2

Define worker. Crea un worker para las pruebas que se llame
worker[tuapellido].

Un worker es una instancia de Tomcat encargada de ejecutar las servlets enviadas como
petición de un servidor web como, por ejemplo, un servidor Apache, ya que éste es incapaz de
ejecutarlas por sí mismo.
Creación del worker personalizado:

Indicamos qué worker servirá los ficheros de los directorios de nuestro servidor:

3.3

¿Qué ficheros de configuración vas a tener que modificar? Captura
pantallas de todos con la parte que has modificado.

Se han modificado los archivos /etc/libapache2-mod-jk/workers.properties,
/etc/apache2/mods-enabled/jk.conf, server.xml (para comprobar el puerto utilizado), y el
fichero de configuración del Virtual Host.
Pueden verse las modificaciones realizadas en los ficheros más arriba, durante el
desarrollo de la práctica.

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

3.4

10

¿Qué ficheros de log has revisado? Captura pantallas de todos ellos
tanto si se muestra algún error como si no.

He utilizado, principalmente, el fichero /var/log/apache2/mod_jk.log, el cual me ha
sido de mucha utilidad para detectar errores durante el desarrollo de la práctica. En el siguiente
punto pueden verse imágenes donde se detectan errores mediante la consulta de este fichero.
Otros ficheros que también son de utilidad son el fichero /var/log/apache2/error.log:

Y el fichero /var/log/apache2/Access.log:

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

3.5

11

Indica los errores que han ido apareciendo y cómo los has
solucionado.

3.5.1 Error: /examples/ dentro de otro directorio:
Uno de los primeros errores que he cometido, y que ha sido catastrófico al no conseguir
que Tomcat accediera a las aplicaciones (mostrando un error 404), ha sido insertar el directorio
/examples/ dentro de un directorio llamado /webapps/.
Para solucionarlo, tan sólo he tenido que sacar el directorio a /var/www, quedando de la
siguiente manera:

Acto seguido, he eliminado el directorio /webapps/, ya que no tiene utilidad ninguna.

3.5.2 Error: Apache nos da un error al iniciarlo:
Al reiniciar Apache, nos devuelve el siguiente error:

Nos indica que la directiva JkWorkersFile sólo puede emplearse una vez. Para
solucionarlo, tenemos que comentar la siguiente línea en el fichero /etc/apache2/modsenabled/jk.conf:

En cambio, la misma va incluida en el fichero /etc/apache2/httpd.conf:

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

12

3.5.3 Error: Could not find worker jk-manager y jk-status:
Revisando el fichero de log /var/log/apache2/mod_jk.log encontramos las siguientes
líneas, indicando errores relacionados con el módulo jk:

Esto es causado a que estamos empleando el módulo en un Virtual Host, por lo que
tenemos que hacer como se nos indica en el fichero de configuración, y solucionar el problema
comentando las siguientes líneas:

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

13

3.5.4 Error: la página nos devuelve un error 503 (servicio no disponible):
Si hacemos uso, una vez más, del fichero mod_jk.log, nos encontramos los siguientes
errores:

El error puede estar causado porque no tenemos iniciado el servicio de Tomcat, o
porque
tenemos
configurado
un
puerto
equivocado
en
el
fichero
$CATALINA_HOME/conf/server.xml.

3.5.5 Error: la página nos devuelve un error 404 (no encontrado):
Este error puede tener infinitas causas, en mi caso, se me mostraba cuando aún no había
solucionado el error 3.5.1, porque las aplicaciones estaban intentando acceder a una dirección
distinta a la que tenían programada, por lo que la dirección devuelta no podía ser encontrada por
el servidor.

3.6

Opcional: investiga en qué casos puede ser interesante definir varios
"workers".
Hay varios casos en los que trabajar con varios workers resulta útil:





Para servir distintos contextos utilizando workers Tomcat distintos, para
proporcionar un entorno de desarrollo donde los desarrolladores compartan
el mismo servidor pero cada uno utilizando su propio worker.
Cuando queremos que cada host virtual utilice su propio worker. De esta
manera, se establece una clara separación entre cada sitio web, siendo de
utilidad, por ejemplo, en servidores compartidos por varias empresas, donde
cada una aloja su propio sitio web.
Para proporcionar balanceo de carga utilizando múltiples workers, cada uno
corriendo en una máquina distinta, y distribuyéndose las peticiones entre ellos.
De esta forma se consigue una alta disponibilidad y mejora de rendimiento y
número máximo de usuarios de las aplicaciones servidas.

3.7

Opcional: ponlo en práctica configurando un worker más para otro
de tus servidores web virtual.

3.8

Opcional: investiga también cómo usar "JkMountCopy On" en el
fichero jk.conf para evitar tener que copiar la configuración sobre los
ficheros jk_estatus, jk_log, etc a cada servidor web virtual. Pruébalo
en tu configuración.

He utilizado esta directiva desde el primer momento, ya que facilita el desarrollo de la
práctica.
Esta directiva, si está activada en un host virtual, copiará todo lo montado por el
servidor principal (utilizando JkMount o JkUnMount) al sitio que la utilice.
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

14

La configuración por defecto es “Off”, es decir, está apagada. Para activarla en uno de
nuestros host virtuales, tenemos que incluir lo siguiente en el fichero de configuración de dicho
sitio:

De esta forma, se copiaran en este sitio los mounts cargados por el servidor global
mediante el uso de JkMount, en este caso, cargamos desde el /etc/apache2/httpd.conf lo
siguiente:

De esta manera, nos ahorramos tener que copiar en cada host virtual la configuración de
los ficheros del módulo jk.

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

15

4 CONCLUSIÓN
En esta práctica he aprendido a integrar un servidor web con el servidor Tomcat
instalado previamente para poder servir las servlets que Apache no puede servir por sí mismo.
Todo ello gracias a la instalación y uso de mod_jk.
Para ello, se ha tratado el uso de los workers de Tomcat, y los distintos ficheros de
configuración, tanto de Apache, como de Tomcat y del propio módulo utilizado.
Además, he resuelto los distintos errores aparecidos durante la práctica mediante el uso
de los ficheros de log, de la documentación, y del todopoderoso Google.

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
Práctiac 12: Integrar Apache con Tomcat

16

5 BIBLIOGRAFIA


Integración de Tomcat y Apache paso a paso.
Consultado en: http://moodle.iesgrancapitan.org/mod/resource/view.php?id=6234



Documentación de Apache Tomcat, Connectors.
Consultado en: http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html



Documentación de Apache Tomcat, JkMountCopy On
Consultado en: http://tomcat.apache.org/connectors-doc/reference/apache.html



Tomcat, introducción en castellano. Workers Tomcat.
Consultado en: http://www.programacion.com/articulo/tomcat_-_introduccion_134/3

IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org

Más contenido relacionado

La actualidad más candente

Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
A story of the passive aggressive sysadmin of AEM
A story of the passive aggressive sysadmin of AEMA story of the passive aggressive sysadmin of AEM
A story of the passive aggressive sysadmin of AEMFrans Rosén
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class (RuhrSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (RuhrSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (RuhrSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (RuhrSec Edition)CODE WHITE GmbH
 
Online examination system of open and distance education kunti
Online examination system of open and distance education kuntiOnline examination system of open and distance education kunti
Online examination system of open and distance education kuntiNawaraj Ghimire
 
Pentesting RESTful webservices
Pentesting RESTful webservicesPentesting RESTful webservices
Pentesting RESTful webservicesMohammed A. Imran
 
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...dezyneecole
 
Result management system
Result management systemResult management system
Result management systemTechnical Hub
 
Enterprise Storage NAS - Dual Controller
Enterprise Storage NAS - Dual ControllerEnterprise Storage NAS - Dual Controller
Enterprise Storage NAS - Dual ControllerFernando Barrientos
 
OpenStack with OpenFlow
OpenStack with OpenFlowOpenStack with OpenFlow
OpenStack with OpenFlowToshiki Tsuboi
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson AEM HUB
 
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)Marco Balduzzi
 

La actualidad más candente (20)

Systemes authentification
Systemes authentificationSystemes authentification
Systemes authentification
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
A story of the passive aggressive sysadmin of AEM
A story of the passive aggressive sysadmin of AEMA story of the passive aggressive sysadmin of AEM
A story of the passive aggressive sysadmin of AEM
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class (RuhrSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (RuhrSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (RuhrSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (RuhrSec Edition)
 
Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
 
Online examination system of open and distance education kunti
Online examination system of open and distance education kuntiOnline examination system of open and distance education kunti
Online examination system of open and distance education kunti
 
Pentesting RESTful webservices
Pentesting RESTful webservicesPentesting RESTful webservices
Pentesting RESTful webservices
 
Online job portal
Online job portalOnline job portal
Online job portal
 
SOLID Principles
SOLID PrinciplesSOLID Principles
SOLID Principles
 
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
 
Neutron packet logging framework
Neutron packet logging frameworkNeutron packet logging framework
Neutron packet logging framework
 
Hack and Slash: Secure Coding
Hack and Slash: Secure CodingHack and Slash: Secure Coding
Hack and Slash: Secure Coding
 
React hooks
React hooksReact hooks
React hooks
 
Result management system
Result management systemResult management system
Result management system
 
Sql Injection Myths and Fallacies
Sql Injection Myths and FallaciesSql Injection Myths and Fallacies
Sql Injection Myths and Fallacies
 
Enterprise Storage NAS - Dual Controller
Enterprise Storage NAS - Dual ControllerEnterprise Storage NAS - Dual Controller
Enterprise Storage NAS - Dual Controller
 
OpenStack with OpenFlow
OpenStack with OpenFlowOpenStack with OpenFlow
OpenStack with OpenFlow
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson
 
React native
React nativeReact native
React native
 
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
HTTP Parameter Pollution Vulnerabilities in Web Applications (Black Hat EU 2011)
 

Destacado

Instalación de Apache Tomcat 8
Instalación de Apache Tomcat 8Instalación de Apache Tomcat 8
Instalación de Apache Tomcat 8pablozacrosuarez
 
Apache Tomcat 8: despliegue de una aplicación mediante terminal
Apache Tomcat 8: despliegue de una aplicación mediante terminalApache Tomcat 8: despliegue de una aplicación mediante terminal
Apache Tomcat 8: despliegue de una aplicación mediante terminalpablozacrosuarez
 
Apache Tomcat 8: despliegue de una aplicación mediante el interfaz
Apache Tomcat 8: despliegue de una aplicación mediante el interfazApache Tomcat 8: despliegue de una aplicación mediante el interfaz
Apache Tomcat 8: despliegue de una aplicación mediante el interfazpablozacrosuarez
 
Instalación y configuración de un servidor ProFTPd
Instalación y configuración de un servidor ProFTPdInstalación y configuración de un servidor ProFTPd
Instalación y configuración de un servidor ProFTPdpablozacrosuarez
 
Apache: información sobre nuestro servidor web
Apache: información sobre nuestro servidor webApache: información sobre nuestro servidor web
Apache: información sobre nuestro servidor webpablozacrosuarez
 
Comunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSPComunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSPDanii Rodriguez
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Micael Gallego
 
Cómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideShareCómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideSharePedro Bermudez Talavera
 

Destacado (10)

Instalación de Apache Tomcat 8
Instalación de Apache Tomcat 8Instalación de Apache Tomcat 8
Instalación de Apache Tomcat 8
 
Apache Tomcat 8: despliegue de una aplicación mediante terminal
Apache Tomcat 8: despliegue de una aplicación mediante terminalApache Tomcat 8: despliegue de una aplicación mediante terminal
Apache Tomcat 8: despliegue de una aplicación mediante terminal
 
Apache Tomcat 8: despliegue de una aplicación mediante el interfaz
Apache Tomcat 8: despliegue de una aplicación mediante el interfazApache Tomcat 8: despliegue de una aplicación mediante el interfaz
Apache Tomcat 8: despliegue de una aplicación mediante el interfaz
 
Instalación y configuración de un servidor ProFTPd
Instalación y configuración de un servidor ProFTPdInstalación y configuración de un servidor ProFTPd
Instalación y configuración de un servidor ProFTPd
 
Apache: información sobre nuestro servidor web
Apache: información sobre nuestro servidor webApache: información sobre nuestro servidor web
Apache: información sobre nuestro servidor web
 
Comunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSPComunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSP
 
Gestion De Calidad Cap 26
Gestion De Calidad Cap 26Gestion De Calidad Cap 26
Gestion De Calidad Cap 26
 
Tomcat
TomcatTomcat
Tomcat
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
 
Cómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideShareCómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideShare
 

Similar a Apache Tomcat 8: integración con Apache Server (con mod_jk)

Similar a Apache Tomcat 8: integración con Apache Server (con mod_jk) (20)

12integracion de tomcat con apache
12integracion de tomcat con apache12integracion de tomcat con apache
12integracion de tomcat con apache
 
Apache: Servidores web virtuales (por IP y puerto)
Apache: Servidores web virtuales (por IP y puerto)Apache: Servidores web virtuales (por IP y puerto)
Apache: Servidores web virtuales (por IP y puerto)
 
Apache: Servidores web virtuales (por nombre)
Apache: Servidores web virtuales (por nombre)Apache: Servidores web virtuales (por nombre)
Apache: Servidores web virtuales (por nombre)
 
Instalación de Tomcat 7 en Linux y Windows
Instalación de Tomcat 7 en Linux y WindowsInstalación de Tomcat 7 en Linux y Windows
Instalación de Tomcat 7 en Linux y Windows
 
Servidor web Apache
Servidor web ApacheServidor web Apache
Servidor web Apache
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
 
JSP
JSPJSP
JSP
 
09practicafinal
09practicafinal09practicafinal
09practicafinal
 
instalacion tomcat
instalacion tomcatinstalacion tomcat
instalacion tomcat
 
Apache: Más opciones de configuración
Apache: Más opciones de configuraciónApache: Más opciones de configuración
Apache: Más opciones de configuración
 
Desarrollo web con JAVA: Introduccion a los Servlets
Desarrollo web con JAVA: Introduccion a los ServletsDesarrollo web con JAVA: Introduccion a los Servlets
Desarrollo web con JAVA: Introduccion a los Servlets
 
Lamp
LampLamp
Lamp
 
Agentes y servlets
Agentes y servletsAgentes y servlets
Agentes y servlets
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
01intalacion de apache
01intalacion de apache01intalacion de apache
01intalacion de apache
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 

Más de pablozacrosuarez

Apache: Servidor Web Seguro (HTTPS)
Apache: Servidor Web Seguro (HTTPS)Apache: Servidor Web Seguro (HTTPS)
Apache: Servidor Web Seguro (HTTPS)pablozacrosuarez
 
Apache: páginas multilenguaje
Apache: páginas multilenguajeApache: páginas multilenguaje
Apache: páginas multilenguajepablozacrosuarez
 
Apache: Servidores web con autentificación
Apache: Servidores web con autentificaciónApache: Servidores web con autentificación
Apache: Servidores web con autentificaciónpablozacrosuarez
 
Sistemas de control de versiones: CVS
Sistemas de control de versiones: CVSSistemas de control de versiones: CVS
Sistemas de control de versiones: CVSpablozacrosuarez
 
Sistemas de control de versiones: SVN
Sistemas de control de versiones: SVNSistemas de control de versiones: SVN
Sistemas de control de versiones: SVNpablozacrosuarez
 
Sistemas de control de versiones: Git
Sistemas de control de versiones: GitSistemas de control de versiones: Git
Sistemas de control de versiones: Gitpablozacrosuarez
 

Más de pablozacrosuarez (6)

Apache: Servidor Web Seguro (HTTPS)
Apache: Servidor Web Seguro (HTTPS)Apache: Servidor Web Seguro (HTTPS)
Apache: Servidor Web Seguro (HTTPS)
 
Apache: páginas multilenguaje
Apache: páginas multilenguajeApache: páginas multilenguaje
Apache: páginas multilenguaje
 
Apache: Servidores web con autentificación
Apache: Servidores web con autentificaciónApache: Servidores web con autentificación
Apache: Servidores web con autentificación
 
Sistemas de control de versiones: CVS
Sistemas de control de versiones: CVSSistemas de control de versiones: CVS
Sistemas de control de versiones: CVS
 
Sistemas de control de versiones: SVN
Sistemas de control de versiones: SVNSistemas de control de versiones: SVN
Sistemas de control de versiones: SVN
 
Sistemas de control de versiones: Git
Sistemas de control de versiones: GitSistemas de control de versiones: Git
Sistemas de control de versiones: Git
 

Último

Foros de la plataforma de capacitación virtual
Foros de la plataforma de capacitación virtualForos de la plataforma de capacitación virtual
Foros de la plataforma de capacitación virtualUniversidad de Guayaquil
 
Taxonomiìa de Bloom Taller Teorico Practico.pdf
Taxonomiìa de Bloom Taller Teorico Practico.pdfTaxonomiìa de Bloom Taller Teorico Practico.pdf
Taxonomiìa de Bloom Taller Teorico Practico.pdfMarlaZarithchacnGonz
 
Vivimos por fe un tema para saber mas como conocer nuestra fe
Vivimos por fe un tema para saber mas como conocer nuestra feVivimos por fe un tema para saber mas como conocer nuestra fe
Vivimos por fe un tema para saber mas como conocer nuestra feZerimarlandaeta1
 
Ética utilitarista de Jeremy BentahmF.pptx
Ética utilitarista de Jeremy BentahmF.pptxÉtica utilitarista de Jeremy BentahmF.pptx
Ética utilitarista de Jeremy BentahmF.pptxSebaslSalazar
 
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdfDD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdfkarenbaez24
 
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdfTIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdfvventura2024
 
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdfGUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdfMariaLauraLpezCceres
 
¿Cómo puedo manejar mis emociones y ser resiliente?
¿Cómo puedo manejar mis emociones y ser resiliente?¿Cómo puedo manejar mis emociones y ser resiliente?
¿Cómo puedo manejar mis emociones y ser resiliente?JazmnSilvanTorres
 
Examen de Personal Social de 6to año de primaria
Examen de Personal Social de 6to año de primariaExamen de Personal Social de 6to año de primaria
Examen de Personal Social de 6to año de primariaMILAGROSLORENABENITE1
 
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdfcompilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdfDrGonzalezCampo1
 
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRERazonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBREWilliamMendoza82
 
Primera Unidad de Aprendizaje.2024 docx
Primera Unidad de Aprendizaje.2024  docxPrimera Unidad de Aprendizaje.2024  docx
Primera Unidad de Aprendizaje.2024 docxMaritza438836
 
anatomia del cuerpo. humano para niños pdf
anatomia del cuerpo. humano para niños pdfanatomia del cuerpo. humano para niños pdf
anatomia del cuerpo. humano para niños pdfLindaPaolaSantosMont
 

Último (14)

Foros de la plataforma de capacitación virtual
Foros de la plataforma de capacitación virtualForos de la plataforma de capacitación virtual
Foros de la plataforma de capacitación virtual
 
Taxonomiìa de Bloom Taller Teorico Practico.pdf
Taxonomiìa de Bloom Taller Teorico Practico.pdfTaxonomiìa de Bloom Taller Teorico Practico.pdf
Taxonomiìa de Bloom Taller Teorico Practico.pdf
 
Vivimos por fe un tema para saber mas como conocer nuestra fe
Vivimos por fe un tema para saber mas como conocer nuestra feVivimos por fe un tema para saber mas como conocer nuestra fe
Vivimos por fe un tema para saber mas como conocer nuestra fe
 
Ética utilitarista de Jeremy BentahmF.pptx
Ética utilitarista de Jeremy BentahmF.pptxÉtica utilitarista de Jeremy BentahmF.pptx
Ética utilitarista de Jeremy BentahmF.pptx
 
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdfDD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
 
LEY DE LA UTILIDAD---------------- 18.pdf
LEY DE LA UTILIDAD---------------- 18.pdfLEY DE LA UTILIDAD---------------- 18.pdf
LEY DE LA UTILIDAD---------------- 18.pdf
 
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdfTIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
 
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdfGUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
 
¿Cómo puedo manejar mis emociones y ser resiliente?
¿Cómo puedo manejar mis emociones y ser resiliente?¿Cómo puedo manejar mis emociones y ser resiliente?
¿Cómo puedo manejar mis emociones y ser resiliente?
 
Examen de Personal Social de 6to año de primaria
Examen de Personal Social de 6to año de primariaExamen de Personal Social de 6to año de primaria
Examen de Personal Social de 6to año de primaria
 
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdfcompilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
 
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRERazonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
 
Primera Unidad de Aprendizaje.2024 docx
Primera Unidad de Aprendizaje.2024  docxPrimera Unidad de Aprendizaje.2024  docx
Primera Unidad de Aprendizaje.2024 docx
 
anatomia del cuerpo. humano para niños pdf
anatomia del cuerpo. humano para niños pdfanatomia del cuerpo. humano para niños pdf
anatomia del cuerpo. humano para niños pdf
 

Apache Tomcat 8: integración con Apache Server (con mod_jk)

  • 1. IES Gran Capitán Módulo: Despliegue de Aplicaciones Web Ciclo Formativo de Grado Superior “Desarrollo de aplicaciones Web” Práctica 12: Integración de Apache Server con Tomcat Fecha entrega: 13/01/2014 Autor: Pablo Medina Suárez IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://informatica.iesgrancapitan.org informatica@iesgrancapitan.org
  • 2. Práctiac 12: Integrar Apache con Tomcat 2 1 ÍNDICE 1 ÍNDICE 2 2 INTRODUCCIÓN 3 3 DESARROLLO DE LA PRÁCTICA 4 PREGUNTAS: 9 3.1 ¿QUÉ NUEVO MÓDULO DE APACHE HAS NECESITADO INSTALAR Y ACTIVAR? 9 3.2 DEFINE WORKER. CREA UN WORKER PARA LAS PRUEBAS QUE SE LLAME WORKER[TUAPELLIDO]. 9 3.3 ¿QUÉ FICHEROS DE CONFIGURACIÓN VAS A TENER QUE MODIFICAR? CAPTURA PANTALLAS DE TODOS CON LA PARTE QUE HAS MODIFICADO. 9 3.4 ¿QUÉ FICHEROS DE LOG HAS REVISADO? CAPTURA PANTALLAS DE TODOS ELLOS TANTO SI SE MUESTRA ALGÚN ERROR COMO SI NO. 10 3.5 INDICA LOS ERRORES QUE HAN IDO APARECIENDO Y CÓMO LOS HAS SOLUCIONADO. 11 3.5.1 ERROR: /EXAMPLES/ DENTRO DE OTRO DIRECTORIO: 11 3.5.2 ERROR: APACHE NOS DA UN ERROR AL INICIARLO: 11 3.5.3 ERROR: COULD NOT FIND WORKER JK-MANAGER Y JK-STATUS: 12 3.5.4 ERROR: LA PÁGINA NOS DEVUELVE UN ERROR 503 (SERVICIO NO DISPONIBLE): 13 3.5.5 ERROR: LA PÁGINA NOS DEVUELVE UN ERROR 404 (NO ENCONTRADO): 13 3.6 OPCIONAL: INVESTIGA EN QUÉ CASOS PUEDE SER INTERESANTE DEFINIR VARIOS "WORKERS". 13 3.7 OPCIONAL: PONLO EN PRÁCTICA CONFIGURANDO UN WORKER MÁS PARA OTRO DE TUS SERVIDORES WEB VIRTUAL. 13 3.8 OPCIONAL: INVESTIGA TAMBIÉN CÓMO USAR "JKMOUNTCOPY ON" EN EL FICHERO JK.CONF PARA EVITAR TENER QUE COPIAR LA CONFIGURACIÓN SOBRE LOS FICHEROS JK_ESTATUS, JK_LOG, ETC A CADA SERVIDOR WEB VIRTUAL. PRUÉBALO EN TU CONFIGURACIÓN. 13 4 CONCLUSIÓN 15 5 BIBLIOGRAFIA 16 IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 3. Práctiac 12: Integrar Apache con Tomcat 2 3 INTRODUCCIÓN Objetivo: Usar Apache para servir las páginas estáticas y Tomcat para ejecutar servlets. Al acceder desde el navegador a un servlet http://localhost/examples/[pagina con servlets] será Apache el que detecta que se trata de un server y que necesita la ayuda de Tomcat para ejecutarlo de modo que reenvía la petición a Tomcat. Entonces estaremos haciendo uso de Tomcat como contenedor pero sin acceder directamente a él (indicando el puerto de Tomcat como hicimos en la práctica anterior): http://localhost:8080/examples/[pagina con servlets] Requisitos: - Tener Tomcat instalado. Pasos: Lee la documentación al respecto subida a moodle (documento paso a paso). Documenta la instalación, configuración y ejecución respondiendo al mismo tiempo a las preguntas siguientes. Nota: la última pregunta es opcional y subirá la nota de la práctica. IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 4. Práctiac 12: Integrar Apache con Tomcat 4 3 DESARROLLO DE LA PRÁCTICA Antes de comenzar, iniciamos en el servidor tanto el servicio Apache como el de Tomcat, y comprobamos que funcionan correctamente. A su vez, recordamos las rutas donde están instalados los servicios y los programas necesarios, como Java, etc. Vemos que comprueban correctamente, así que vamos a comprobar si Apache es capaz de ejecutar algún Servlet por sí mismo (lo cual comprobaremos que no será así). Accedemos al directorio de servlets de ejemplo de Tomcat y copiamos el directorio de aplicaciones de ejemplo de Tomcat (examples) en el directorio de Apache: Ahora abrimos el navegador y accedemos a la dirección correspondiente para comprobar si funciona la aplicación: Como puede verse en la imagen, el resultado obtenido no es el deseado, porque el navegador nos ha mostrado el código del documento en lugar del resultado, ya que no ha sido interpretado por el servidor. Por lo tanto, tenemos que encontrar la forma de que Apache recurra a Tomcat para ejecutar las aplicaciones. IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 5. Práctiac 12: Integrar Apache con Tomcat 5 Tenemos que instalar y activar el módulo jk (libapache2-mod-jk), así que abrimos un terminal e introducimos lo siguiente, reiniciando además el servicio de Apache: Hecho lo anterior, comprobamos que nos han aparecido dos archivos nuevos, jk.conf y jk.load, tanto en el directorio mods-available como en mods-enabled del servicio Apache: Ya tenemos instalado el módulo necesario, lo siguiente a realizar las configuraciones necesarias en los ficheros de configuración. En primer lugar, abrimos el fichero /etc/libapache2-mod-jk/workers.properties y modificamos las siguientes líneas: Reemplazamos por la ruta donde está instalado Tomcat IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 6. Práctiac 12: Integrar Apache con Tomcat 6 Reemplazamos por la ruta de instalación de Java Añadido de un nuevo worker, con el que trabajaremos en el desarrollo de ésta práctica Configuraciones realizadas para el nuevo worker, nótese que el puerto utilizado por nuestro worker debe ser el mismo que uno de los utilizados en el fichero server.xml Al haber incluido un nuevo worker, debemos hacer la siguiente modificación en el fichero server.xml de Tomcat: Aquí puede verse la parte del archivo de configuración server.xml, donde se ve que el puerto utilizado es el 8009 y se ha creado otro conector para el 8010 IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 7. Práctiac 12: Integrar Apache con Tomcat 7 Guardamos los cambios y ahora abrimos y pasamos a configurar el fichero /etc/apache2/mods-enabled/jk.conf, donde hacemos los siguientes cambios: Por orden: se comenta la línea donde se indica la ruta del fichero workers.properties, se indica dónde y qué nombre tendrá el fichero de log de jk, y cuál el nivel de log (error, para que muestre errores) NOTA: he comentado la línea JkWorkersFile debido a que la añadiremos más adelante para evitar un error causado al utilizar un Virtual Host. Abrimos el fichero de configuración del Virtual Host desde el cual queremos ejecutar los servlets, en este caso, el sitio por defecto (default) y añadimos lo siguiente: Entre la etiqueta VirtualHost añadimos la directiva JkMountCopy, para cargar las direcciones montadas en httpd.conf, que serán interpretadas por el servidor Tomcat, en lugar de por Apache. Por último, se añade la directiva JkMountCopy On, que veremos en la pregunta correspondiente el motivo por el que lo he utilizado. IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 8. Práctiac 12: Integrar Apache con Tomcat 8 Ahora, abrimos el fichero /etc/apache/httpd.conf, en el cual añadimos lo siguiente: Se emplea la directiva Include para que se carguen las configuraciones del módulo jk, contenidas en el fichero indicado. E insertamos la línea que se comentó anteriormente para evitar un error con Apache. Montamos con JkMount los directorios cuyos documentos serán interpretados por Tomcat. Con el uso de la directiva JkMount le indicamos al servidor qué direcciones serán interpretadas por el servidor Tomcat, en este caso, todos los documentos con extensión .jsp y todo lo contenido en el directorio /examples/ de nuestro servidor. A continuación, le indicamos el worker que se encargará de servir las aplicaciones, en este caso, el que hemos creado anteriormente. Ya sólo nos queda reiniciar tanto el servicio Tomcat como el servidor Apache para que los cambios se tengan en cuenta y probamos de nuevo a ejecutar alguna de las servlets. Por lo que abrimos el navegador y, utilizando la dirección http://localhost/examples/, elegimos alguna de las aplicaciones: Otra de las aplicaciones de ejemplo: IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 9. Práctiac 12: Integrar Apache con Tomcat 9 Y con esto, ¡ya tenemos integrado nuestro servidor Apache con Tomcat para servir servlets! PREGUNTAS: 3.1 ¿Qué nuevo módulo de apache has necesitado instalar y activar? Se ha instalado y activado el módulo jk (libapache2-mod-jk). Con esto, es posible establecer conexiones entre servidores utilizando el protocolo AJP. 3.2 Define worker. Crea un worker para las pruebas que se llame worker[tuapellido]. Un worker es una instancia de Tomcat encargada de ejecutar las servlets enviadas como petición de un servidor web como, por ejemplo, un servidor Apache, ya que éste es incapaz de ejecutarlas por sí mismo. Creación del worker personalizado: Indicamos qué worker servirá los ficheros de los directorios de nuestro servidor: 3.3 ¿Qué ficheros de configuración vas a tener que modificar? Captura pantallas de todos con la parte que has modificado. Se han modificado los archivos /etc/libapache2-mod-jk/workers.properties, /etc/apache2/mods-enabled/jk.conf, server.xml (para comprobar el puerto utilizado), y el fichero de configuración del Virtual Host. Pueden verse las modificaciones realizadas en los ficheros más arriba, durante el desarrollo de la práctica. IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 10. Práctiac 12: Integrar Apache con Tomcat 3.4 10 ¿Qué ficheros de log has revisado? Captura pantallas de todos ellos tanto si se muestra algún error como si no. He utilizado, principalmente, el fichero /var/log/apache2/mod_jk.log, el cual me ha sido de mucha utilidad para detectar errores durante el desarrollo de la práctica. En el siguiente punto pueden verse imágenes donde se detectan errores mediante la consulta de este fichero. Otros ficheros que también son de utilidad son el fichero /var/log/apache2/error.log: Y el fichero /var/log/apache2/Access.log: IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 11. Práctiac 12: Integrar Apache con Tomcat 3.5 11 Indica los errores que han ido apareciendo y cómo los has solucionado. 3.5.1 Error: /examples/ dentro de otro directorio: Uno de los primeros errores que he cometido, y que ha sido catastrófico al no conseguir que Tomcat accediera a las aplicaciones (mostrando un error 404), ha sido insertar el directorio /examples/ dentro de un directorio llamado /webapps/. Para solucionarlo, tan sólo he tenido que sacar el directorio a /var/www, quedando de la siguiente manera: Acto seguido, he eliminado el directorio /webapps/, ya que no tiene utilidad ninguna. 3.5.2 Error: Apache nos da un error al iniciarlo: Al reiniciar Apache, nos devuelve el siguiente error: Nos indica que la directiva JkWorkersFile sólo puede emplearse una vez. Para solucionarlo, tenemos que comentar la siguiente línea en el fichero /etc/apache2/modsenabled/jk.conf: En cambio, la misma va incluida en el fichero /etc/apache2/httpd.conf: IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 12. Práctiac 12: Integrar Apache con Tomcat 12 3.5.3 Error: Could not find worker jk-manager y jk-status: Revisando el fichero de log /var/log/apache2/mod_jk.log encontramos las siguientes líneas, indicando errores relacionados con el módulo jk: Esto es causado a que estamos empleando el módulo en un Virtual Host, por lo que tenemos que hacer como se nos indica en el fichero de configuración, y solucionar el problema comentando las siguientes líneas: IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 13. Práctiac 12: Integrar Apache con Tomcat 13 3.5.4 Error: la página nos devuelve un error 503 (servicio no disponible): Si hacemos uso, una vez más, del fichero mod_jk.log, nos encontramos los siguientes errores: El error puede estar causado porque no tenemos iniciado el servicio de Tomcat, o porque tenemos configurado un puerto equivocado en el fichero $CATALINA_HOME/conf/server.xml. 3.5.5 Error: la página nos devuelve un error 404 (no encontrado): Este error puede tener infinitas causas, en mi caso, se me mostraba cuando aún no había solucionado el error 3.5.1, porque las aplicaciones estaban intentando acceder a una dirección distinta a la que tenían programada, por lo que la dirección devuelta no podía ser encontrada por el servidor. 3.6 Opcional: investiga en qué casos puede ser interesante definir varios "workers". Hay varios casos en los que trabajar con varios workers resulta útil:    Para servir distintos contextos utilizando workers Tomcat distintos, para proporcionar un entorno de desarrollo donde los desarrolladores compartan el mismo servidor pero cada uno utilizando su propio worker. Cuando queremos que cada host virtual utilice su propio worker. De esta manera, se establece una clara separación entre cada sitio web, siendo de utilidad, por ejemplo, en servidores compartidos por varias empresas, donde cada una aloja su propio sitio web. Para proporcionar balanceo de carga utilizando múltiples workers, cada uno corriendo en una máquina distinta, y distribuyéndose las peticiones entre ellos. De esta forma se consigue una alta disponibilidad y mejora de rendimiento y número máximo de usuarios de las aplicaciones servidas. 3.7 Opcional: ponlo en práctica configurando un worker más para otro de tus servidores web virtual. 3.8 Opcional: investiga también cómo usar "JkMountCopy On" en el fichero jk.conf para evitar tener que copiar la configuración sobre los ficheros jk_estatus, jk_log, etc a cada servidor web virtual. Pruébalo en tu configuración. He utilizado esta directiva desde el primer momento, ya que facilita el desarrollo de la práctica. Esta directiva, si está activada en un host virtual, copiará todo lo montado por el servidor principal (utilizando JkMount o JkUnMount) al sitio que la utilice. IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 14. Práctiac 12: Integrar Apache con Tomcat 14 La configuración por defecto es “Off”, es decir, está apagada. Para activarla en uno de nuestros host virtuales, tenemos que incluir lo siguiente en el fichero de configuración de dicho sitio: De esta forma, se copiaran en este sitio los mounts cargados por el servidor global mediante el uso de JkMount, en este caso, cargamos desde el /etc/apache2/httpd.conf lo siguiente: De esta manera, nos ahorramos tener que copiar en cada host virtual la configuración de los ficheros del módulo jk. IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 15. Práctiac 12: Integrar Apache con Tomcat 15 4 CONCLUSIÓN En esta práctica he aprendido a integrar un servidor web con el servidor Tomcat instalado previamente para poder servir las servlets que Apache no puede servir por sí mismo. Todo ello gracias a la instalación y uso de mod_jk. Para ello, se ha tratado el uso de los workers de Tomcat, y los distintos ficheros de configuración, tanto de Apache, como de Tomcat y del propio módulo utilizado. Además, he resuelto los distintos errores aparecidos durante la práctica mediante el uso de los ficheros de log, de la documentación, y del todopoderoso Google. IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
  • 16. Práctiac 12: Integrar Apache con Tomcat 16 5 BIBLIOGRAFIA  Integración de Tomcat y Apache paso a paso. Consultado en: http://moodle.iesgrancapitan.org/mod/resource/view.php?id=6234  Documentación de Apache Tomcat, Connectors. Consultado en: http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html  Documentación de Apache Tomcat, JkMountCopy On Consultado en: http://tomcat.apache.org/connectors-doc/reference/apache.html  Tomcat, introducción en castellano. Workers Tomcat. Consultado en: http://www.programacion.com/articulo/tomcat_-_introduccion_134/3 IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba. http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org