instalación y administracióln de apache tomcat 6 - jjd 110 ·  · 2009-02-09apache server (a...

193
Instalación y Administración de Apache Tomcat 6 Iván Párraga García – [email protected]

Upload: truongkiet

Post on 19-Apr-2018

221 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Instalación y Administración de Apache Tomcat 6

Iván Párraga García – [email protected]

Page 2: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 2

Módulo 1

Introducción

Page 3: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 3

Objetivos

Introducción al proyecto Apache & Jakarta

Entender la tecnología J2EE

Page 4: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 4

El proyecto Apache

Rob McCool en el NCSA de la Universidad de Illinois, creó uno de los primeros servidores web (conocido como NCSA)

El autor dejó el NCSA y un grupo de desarrolladores lanzaron una nueva versión corregida conocida como Apache Server (A PAtCHy Web Server)

Apache fue ganando popularidad al mismo ritmo que NCSA la perdía (dejó de soportarse en 1999)

Hoy día está disponible en cualquier plataforma y se considera un plataforma de producción de alta calidad y que tiene una cuota de mercado del 60%

Page 5: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 5

Organización sin ánimo de lucro fundada en 1999 cuyo objetivo es facilitar el desarrollo de proyecto s de software libre

Tomcat se ha desarrollado en el marco de la ASF

Proyectos de la ASF: Servidor Web Apache Xerces: parser XML Java/C++ Ant: el sistema de construcción estándar de

facto en Java Jakarta

Page 6: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 6

Jakarta y Tomcat

Tomcat era un subproyecto bajo el proyecto Apache Jakarta

Apache Jakarta aglutina diversos proyectos Java JMeter Log4j Struts

Hoy día Tomcat es un proyecto de alto nivel

Page 7: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 7

La licencia Apache

Tomcat es código libre, gratis y que puede distribuirse libremente. Se rige bajo la licencia de Apache cuyos puntos: La Apache License debe incluirse con cualquier

redistribución Cualquier documentación incluida con la redistribución

debe ser validad por la ASF Los términos “Tomcat”, “Projecto Jakarta”, “Apache” o

“ASF” no pueden utilizarse sin permiso de la ASF Tomcat no aporta garantías de ningún tipo Tomcat puede ser utilizado por cualquier tipo de entidad Si se modifica el código, no es obligatorio entregar el

código fuente de las modificaciones con la redistribución

Las modificaciones no tienen que ser donadas a la ASF

Page 8: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 8

Las diferentes tecnologías Java

Java para dispositivos móviles

Java para aplicaciones de

escritorio

JME

JSE

JEE

Page 9: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 9

Java Enterprise Edition (JEE)

Es un conjunto de especificaciones que definen unas APIs para la creación de aplicaciones empresariales

Se construye encima de la JSE

NO ES UN SOFTWARE. Las especificaciones son implementadas por diferentes proveedores (el propio SUN, IBM, Oracle, etc.)

SUN controla estas (y otras) especificaciones a través del Java Community Process, que es un proceso formalizado el cual permite a las partes interesadas involucrarse en la definición de futuras versiones de características de la plataforma Java

Page 10: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 10

Arquitectura multicapa (I)

Sistemas especializados por tareas en los servidores

Los usuarios acceden mediante un navegador web estándar

Persistencia

Lógica de Negocio

Presentación

Page 11: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 11

Arquitectura multicapa (II)

Ventajas Mantenible

Sistemas separados por responsabilidades Fácil añadir / modificar funcionalidades

Escalable: los diferentes subsistemas pueden dimensionarse independientemente

Mayor reusabilidad Fácil gestión de las máquinas clientes de los usuarios

Page 12: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 12

Arquitectura multicapa de la JEE

SGBD

PersistenciaPresentación Lógica de NegocioCliente / Usuario

Límites de la tecnología Java

ContenedorWeb

Contenedor EJB

HTTP RMI SQL

Page 13: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 13

Los contenedores JEE (I)

Un contenedor es un componente software que implementa parte de las especificaciones JEE

Proporciona servicios al programador que son comunes y habituales a todas las aplicaciones liberándole de tener que codificarlos cada vez y permitiéndole centrarse en la lógica de negocio olvidándose de tareas tediosas y repetitivas

Page 14: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 14

Los contenedores JEE (II)

Las especificaciones definen dos contenedores

Contenedor web: especializado en gestionar la capa de presentación con tecnologías web (JSPs, servlets, etc.)

Contenedor de Enterprise Java Beans (EJBs): especializado en gestionar la capa de lógica de negocio e interactuar con el sistema de persistencia (el SGBD)

Page 15: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 15

Ventajas del uso de contendores

Construyendo desde cero

Utilizando contenedores

Tareas del desarrollador

Lógica de Negocio

Persistencia

Gestión de transacciones

Multi-threading

Seguridad

Red

Publicación de servicios

Proporcionado por el contenedor

Persistencia

Gestión de transacciones

Multi-threading

Seguridad

Red

Publicación de servicios

Tareas del desarrollador Lógica de Negocio

Page 16: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 16

Servidores de aplicaciones (I)

Es un software que implementa las especificaciones y contenedores JEE

Sun proporciona el sello “JEE compliant server” sólo si superan unos estrictos juegos de pruebas que garantizan que se satisface la especificación

Diferentes proveedores ofrecen diferentes productos, pero está garantizada la compatibilidad entre todos ellos, así pues una aplicación desarrollada en JEE podrá desplegarse en cualquier servidor de aplicaciones

Page 17: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 17

Servidores de aplicaciones (II)

Page 18: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 18

¿Y Tomcat?

Tomcat es un producto muy popular, pero no es un servidor de aplicaciones porque sólo (entre otras cosas) implementa el contenedor web

Es adecuado para aplicaciones web con arquitectura de dos capas, donde el propio contenedor web incluye la lógica de negocio sin requerir el contenedor de EJB

Tomcat es más fácil de administrar y requiere menos recursos para funcionar que servidores de aplicaciones completos

Page 19: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 19

¿Qué hemos visto?

El servidor web Apache está en el origen de la ASF La ASF es una organización que promociona el

desarrollo de software libre Tomcat es un proyecto auspiciado por la ASF La tecnología Java J2EE se basa en la arquitectura en

tres capas La capa de presentación web se implementa con un

contenedor web Tomcat es un servidor y un contenedor web y es

adecuado para algunas tipologías de aplicaciones por su facilidad de uso y su ligereza en cuanto a recursos

Page 20: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 20

Módulo 2

Instalación de Tomcat

Page 21: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 21

Objetivos

Instalar la Java Virtual Machine (JVM)

Instalar Tomcat

Comprender la estructura de directorios de Tomcat

Resolver problemas típicos

Instalar Ant

Page 22: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 22

Instalar la JVM

Tomcat es una aplicación Java y por tanto requiere la JVM

Tomcat 6 requiere la versión Java SE 5.0 o superior

Desde la versión 6 de Tomcat no se necesita el JDK (es suficiente con el JRE)

Page 23: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 23

Instalación de la JVM en Windows (I)

Descargarla de http://java.sun.com

Establecer la variable de entorno JAVA_HOME en la ruta a la raíz de la JRE

Añadir a la variable de entorno PATH la ruta a la subcarpeta bin de la JRE

Page 24: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 24

Instalación de la JVM en Windows (II)

Page 25: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 25

Descargar Tomcat

Conectarse a http://tomcat.apache.org Ir a la zona de descargas y elegir la versión

correspondiente: Core: versión base disponible en diferentes

formatos (nos descargaremos el instalador) Deployer: herramientas de despliegue Admin Webapp (no disponible todavía para la

versión 6) Embedded: para embeber el servidor en otras

aplicaciones

Page 26: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 26

Instalar mediante el asistente

Instalar servicio de Windows

Instalar librerías nativas APR

Instalar ejemplos de servlets y JSPs

Puerto en el que aceptará peticiones

Usuario y password de las herramientas administrativas

Page 27: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 27

Establecer las variables de entorno

Añadir la variable de entorno CATALINA_HOME que apunte a la raíz de la instalación

Page 28: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 28

Probar la instalación

Iniciar el servidor manualmente <TOMCAT_HOME>\bin\tomcat6.exe

Iniciar el servidor como un servicio

Page 29: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 29

Comprobar la instalación

Page 30: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 30

La jerarquía de directorios de Tomcat

bin: scripts y ficheros de arranque conf: ficheros de configuración del

servidor y de usuarios entre otras cosas

logs: contiene los ficheros de log lib: incluye todos los jars que el

servidor requiera webapps: contiene todas las

aplicaciones web work: archivos temporales requeridos

por Tomcat

Page 31: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 31

Problemas típicos (I)

Problema: error de versión de clase Descripción: aparece la siguiente excepción:

java.lang.UnsupportedClassVersionError Solución: instalar una JRE 1.5 o superior y asegurar

que JAVA_HOME le apunta

Problema: puerto en uso Descripción: aparece la excepción:

java.net.BindException: Address already in use Solución: asegurarse que no hay otro servicio en ese

puerto (otro servidor web por ejemplo). Se puede monitorizar el puerto mediante el comando netstat -ao

Page 32: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 32

Problemas típicos (II)

Problema: ejecutar varias instancias Solución: asegurarse que al intentar arrancar Tomcat

no hay otra en ejecución (comprobar que no esté activo el servicio de Tomcat)

Problema: un proxy bloquea el acceso Descripción: se tiene un proxy establecido para todos

los servicios HTTP Solución: deshabilitar el proxy para las conexiones

locales. En la configuración del proxy del navegador web permitir la IP 127.0.0.1

Page 33: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 33

¿ Por qué Ant?

Ant es una herramienta de construcción de software que permite automatizar tareas repetitivas en el proceso de compilación, enlazado, despliegue, etc

Se ha convertido en la herramienta de este tipo estándar de facto para este tipo de tareas

Tomcat define una serie de librerías que le permiten automatizar tareas como el despligue y repligue de apliaciones web

Page 34: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 34

Instalar Ant y las bibliotecas de Tomcat

Descargar Ant desde http://ant.apache.org Descomprimir el fichero Configurar las variables de entorno ANT_HOME

para que apunte a la raíz de la distribución Configurar la variable PATH para añadir la ruta

hasta el directorio <ANT_HOME>/bin

Copiar el fichero <TOMCAT_HOME>/lib/catalina-

ant.jar en <ANT_HOME>/lib

Page 35: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 35

¿Qué hemos visto?

Tomcat es una aplicación Java que requiere la JRE versión 1.5 o superior

Hay diferentes versiones de Tomcat. En general trabajaremos con la versión Core

La instalación bajo Windows se hace de forma sencilla bajo un asistente y la configuración de la variable de entorno CATALINA_HOME

Se han listado los errores y soluciones típicos en la instalación de Tomcat

Tomcat permite automatizar tareas mediante Ant y por eso lo instalamos

Page 36: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 36

Módulo 3

Aplicaciones web con Java

Page 37: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 37

Objetivos

Entender la tecnología de servlets

Entender las JSP

El framework Jakarta Struts

Page 38: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 38

Web sites y aplicaciones web

Un web site es una colecciones de recursos estáticos como páginas HTML, imágenes

Una aplicación web es un web site con recursos dinámicos

Una aplicación web ejecuta programas en el lado del servidor y para ello tiene diferentes tecnologías disponibles

Page 39: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 39

Ejecución de CGI’s

Servidor web

Shell CGI ProgramaCGI

Servidor

Petición

Shell CGIPetición

Shell CGIPetición

Page 40: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 40

Ejecución de servlets

Servidor web

Servidor

Petición

Contenedor web

Servlet

Thread

PeticiónThread

PeticiónThread

Page 41: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 41

Ventajas de modelo de servlets

Utilizan threads en vez de procesos que requieren menos recursos de CPU y memoria (es escalable)

Las tecnologías Java permiten separar la capa de lógica de negocio de la de presentación

Java es un lenguaje robusto y OO

Java es independiente de la plataforma

Page 42: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 42

Fundamentos de los Servlets

Es un tecnología de componentes que se ejecuta en el lado del servidor

Se encarga de lo siguiente: Procesa peticiones HTTP Genera respuestas HTTP dinámicas

Un contenedor web es una Máquina Virtual Java (JVM) que gestiona los servlets y un pool de threads

Page 43: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 43

Fundamentos de las JavaServer Pages

Las JSP se traducen en clases de tipo servlet que se compilan y ejecutan por el contenedor web

El objetivo principal de las JSP es centrarse en la lógica de presentación y no en la lógica de diseño

Se puede embeber código Java dentro de una JSP

Usando la tecnología Java, las JSP se suelen usar en conjunción con los servlets para implementar el patrón M-V-C

Page 44: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 44

Ventajas de la tecnología JSP

Proporcionan alto rendimiento y escalabilidad porque usan threads para responder a las peticiones

Son tecnología Java y por tanto independiente de la plataforma

Pueden utilizar todas las características de la orientación a objetos y las API Java

Page 45: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 45

Inconvenientes de la tecnología JSP

Usadas de manera aislada, incluyendo la lógica de negocio, pueden ser crípticas y además son más difíciles de debuggar

Hay que tener en cuenta temas de concurrencia (hay que comprender el proceso mediante el que se convierten en servlets para evitar problemas potenciales)

Page 46: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 46

El patrón MVC (modelo-vista-controlador)

Page 47: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 47

Struts

Implementa un patrón de diseño de contrastada utilidad en la gestión de interfaces MVC (modelo-vista-controlador)

El framework proporciona Un componente que actúa de controlador Clases de conveniencia Archivos de configuración

Page 48: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 48

¿Por qué vale la pena usar Struts?

Proporciona una infraestructura flexible y extensible para implementar MVC

Permite al desarrollador centrarse en lo que aporta valor añadido a la aplicación: Controladores Componentes que constituyen el modelo Vistas

Facilita Definir el flujo de navegación Verificar y procesar la entrada de datos del usuario La gestión de errores

Page 49: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 49

Estructura de una aplicación web (I)

La estructura de una aplicación web (jerarquía de directorios y ficheros) está definida en la API

Cualquier contenedor web es capaz de trabajar con dicha estructura

Los diferentes contenedores suelen tener un directorio de despliegue donde se instalan las aplicaciones web

Ejercicio M3E1

Page 50: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 50

Estructura de una aplicación web (II)

Recursos estáticos y JSPs

jars necesarios por la aplicación web

Descriptor de despliegue (web.xml)

Servlets y clases compiladas

Descriptor de contexto (context.xml)

Page 51: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 51

¿Qué hemos visto?

Los servlets son una tecnología más eficiente que otras soluciones para dar dinamismo a las aplicaciones web

Los JSP se centran en la presentación La tecnología Java hace uso del patrón M-V-C

y de la arquitectura en 3 capas Struts implementa M-V-C Las aplicaciones web tienen un estructura

definida por la API que cualquier contenedor web entiende

Page 52: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 52

Módulo 4

Configurar Tomcat

Page 53: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 53

Objetivos

Entender la arquitectura de Tomcat

Entender la configuración básica de Tomcat

Entender los principales ficheros de configuración

Gestionar el control de acceso

Page 54: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 54

Arquitectura de Tomcat (I)

Tomcat se constituye como una jerarquía anidada de componentes

Un mismo tipo de componente puede aparecer en diversos puntos de la jerarquía

Es importante entender esta jerarquía a la hora de configurar y administrar el servidor

En la siguiente transparencia se muestra una configuración típica

Page 55: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 55

Arquitectura de Tomcat (II)

Válvula

EncapsuladorRealm

Contexto

RealmVálvulaLoggerHost

RealmVálvulaLogger

MotorConector

Servicio

Servidor

Page 56: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 56

Componentes de Tomcat (I)

Servidor: el contenedor de más alto nivel ofrece un puerto que permite para el servidor. Sólo uno por JVM

Servicio: contenedor de alto nivel que engloba un motor y un conjunto de conectores

Motor: componente que procesa peticiones, examinándolas para redirigirlas al host o context correspondiente. Motor por defecto: Catalina

Page 57: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 57

Componentes de Tomcat (II)

Realm: gestiona la autenticación y autorización de usuario

Válvula: son filtros transparentes a las aplicaciones que permiten interceptar las peticiones y preprocesarlas

Conector: ofrecen los puertos por los cuales los clientes se conectan a las aplicaciones

Page 58: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 58

Componentes de Tomcat (III)

Logger: informan sobre el estado interno de un componente y permiten registrar esa información

Host: nos permite tener variaso servidores virtuales en la misma máquina y diferenciarlos por dirección IP o por nombre

Contexto: representa la aplicación web (son términos sinónimos) y se considera a la vez un contenedor de componentes servlet y JSP (entre otros)

Page 59: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 59

Configuración por arquitectura

Comprendiendo las relaciones padre-hijo de los componentes, la administración de Tomcat es sencilla

El fichero de configuración más importante es <TOMCAT_HOME>/conf/server.xml que representa dichas relaciones mediante anidamiento de etiquetas XML

Los scripts de arranque leen este fichero para crear y configurar los componentes

Page 60: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 60

El server.xml por defecto

<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine> </Service></Server>

Page 61: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 61

Ficheros de configuración básicos (I)

Residen en <TOMCAT_HOME>/conf

server.xml: fichero de configuración principal, que se lee al arrancar el servidor. Afecta a la instancia completa de Tomcat. No debería contener configuración de contexto (aplicación)

tomcat-users.xml: contiene autenticación de usuario e información de roles. Las aplicaciones de gestión utilizan esta información

Page 62: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 62

Ficheros de configuración básicos (II)

context.xml: configuración de contexto por defecto de las aplicaciones web (configura componentes como gestores de persistencia de sesión, realms, conexiones JDBC, etc)

web.xml: constituye el descriptor de despliegue por defecto de las aplicaciones web

catalina.policy: fichero de configuración del modelo de seguridad de Java SE

Page 63: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 63

Ficheros de configuración básicos (III)

catalina.properties: propiedades que aportan accesos a paquetes internos y control de contenidos sobre los cargadores de clases

logging.properties: Tomcat utiliza por defecto la API de Java SE para escribir los ficheros de log (no log4J) y este es el archivo de configuración

Page 64: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 64

server.xml: Componente Server

Ejercicio M4E1

Page 65: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 65

server.xml: Subelementos de Server

Page 66: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 66

server.xml: Componente Service

Page 67: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 67

Los modos de operaciones de Tomcat

Servidor de aplicaciones Tomcat requiere un servidor web que actúe de frontend

(Apache, IIS u otro) El contenido estático es servido por el frontend Las peticiones a servlets y JSPs son redirigidas a

Tomcat por el servidor web Recibe peticiones en protocolos específicos como AJP

que son enviados por el frontend

Standalone No hay un servidor web que actúe de frontend Todos los contenidos son servidos por Tomcat Recibe peticiones HTTP

Page 68: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 68

server.xml: Connector

Veremos los conectores y los posibles modos de operación de Tomcat en más detalle en capítulos subsiguientes

Page 69: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 69

server.xml: Componente Engine

Page 70: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 70

Componente Realm

Implementan la seguridad declarativa

Establecen un mapeo entre usuarios, contraseñas y roles de teareas que pueden llevar a cabo

Lo veremos en más detalles en un módulo posterior

Page 71: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 71

Componente Host

Es un contenedor que representa un host virtual

Un solo servidor Tomcat 6 puede contener muchos hosts virtuales

Servidor Servicio Motor

Host Virtual 1(www.host1.com)

Web App 1 Web App 2

Host Virtual 2(www.host2.org)

Web App 1 Web App 2

Host Virtual 2(host1.es)

Web App 1 Web App 2

Page 72: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 72

server.xml: Componente Host

Ejercicio M4E2

Page 73: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 73

context.xml

Ya hemos visto que los contextos establecen una serie de configuraciones para cada aplicación web (los veremos en más detalle)

Se alojan en <CATALINA_HOME>/conf/<nombre_motor>/<nombre_host>

Las aplicaciones web pueden definir su propio context.xml en su carpeta META-INF

Si no se define ningún context.xml se aplica por defecto <CATALINA_HOME>/conf/context.xml

Page 74: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 74

Descriptor de despliegue: web.xml

Toda aplicación web, por especificación, está obligada a aportar un descriptor de despliegue en WEB-INF/web.xml

El descriptor <TOMCAT_HOME>/conf/web.xml es un descriptor por defecto que se procesa siempre antes que el descriptor propio de cada aplicación web

Sólo debería contener información general y no específica de aplicación

Permite activar/desactivar/configurar numerosas opciones como el compilador de JSPs, CGI, SSI, mapeos MIME…

Ejercicio M4E3

Page 75: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 75

¿Qué hemos visto?

La arquitectura de Tomcat se basa en componentes organizados jerárquicamente en relaciones padre-hijo

El fichero de configuración principal es server.xml que mapea esta jerarquía

Hay otros ficheros de configuración que aplican valores por defecto sobre las aplicaciones desplegadas

Page 76: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 76

Módulo 5

Gestionar aplicaciones web

Page 77: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 77

Objetivos

Gestión mediante el Tomcat Manager

Integración de gestión mediante Ant

Gestión mediante peticiones HTTP

Page 78: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 78

Desplegar una aplicación manualmente

Añadir una entrada <Context> en el server.xml, lo que permite colocar la aplicación web en una localización diferente a <CATALINA_HOME>/webapps

Copiar el directorio de aplicación completo en el directorio <CATALINA_HOME>/webapps

Copiar el fichero WAR en <CATALINA_HOME>/webapps

Page 79: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 79

Tomcat Manager

Herramienta web que permite llevar a cabo tareas de administración: Desplegar aplicación web Listar aplicaciones desplegadas y sesiones

activas Listar recursos JNDI Elaborar roles de seguridad Iniciar una aplicación detenida Detener una aplicación Replegar una aplicación Mostrar estadísticas de sesión

Page 80: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 80

Permitir el acceso al manager

Por defecto y por motivos de seguridad está desactivado

Hay que configurar un Realm que permita el acceso

Por defecto se controla mediante un Realm que lee los contenidos del fichero <CATALINA_HOME>/conf/tomcat-users-xml

Hay que activar un usuario con su password correspodiente y el rol manager

Ejercicio M5E1

Page 81: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 81

La pantalla principal del manager

Page 82: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 82

Ajustar la configuración del Manager

Se trata de una aplicación web como cualquier otra y por tanto tiene un descriptor de despliegue propio

En su web.xml se pueden modificar los criterios de seguridad Operaciones permitidas y roles administrativos Tipo de autenticación (veremos los diferentes

tipos en un módulo posterior)

Page 83: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 83

Manager: mostrar el estado del servidor

Page 84: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 84

Manager: gestionar aplicaciones (I)

Page 85: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 85

Manager: gestionar aplicaciones (II)

Trayectoria: ruta de la aplicación web Nombre a mostrar: el <display-name> del DD Ejecutándose: true o false según sea Sesiones: número de sesiones activas.

Haciendo click sobre el número se obtiene más información estadística

Comandos: arrancar, parar, recargar, replegar

Page 86: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 86

Manager: desplegar aplicaciones

Ejercicio M5E2

Page 87: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 87

Controlar aplicaciones mediante Ant

Instalar Ant y las librerías de Tomcat (ver módulo 2)

Añadir al script build.xml los elementos <taskdef> para llamar a los comandos

Añadir, si no existiera, un usuario con el rol manager

Page 88: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 88

Importar los tasks mediante taskdef

Los tasks de Tomcat no son estándar de Ant y por tanto hay que importarlos en el fichero build.xml que los utilice

<project name="M3E1" default="default" basedir=".">../..<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/><taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/>../..</project>

build.xml

Page 89: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 89

Importar los tasks mediante un properties

deploy=org.apache.catalina.ant.DeployTasklist=org.apache.catalina.ant.ListTaskstatus=org.apache.catalina.ant.JKStatusUpdateTaskreload=org.apache.catalina.ant.ReloadTaskremove=org.apache.catalina.ant.RemoveTaskresources=org.apache.catalina.ant.ResourcesTaskstart=org.apache.catalina.ant.StartTaskstop=org.apache.catalina.ant.StopTaskundeploy=org.apache.catalina.ant.UndeployTask../..

tomcat-tasks.properties

../..<path id=“tomcat.classpath”>

<fileset dir=“${tomcat.home}/lib”><include name=“*.jar”/>

</fileset></path><taskdef file=“tomcat-tasks.properties” classpathref=“tomcat.classpath”/>../..

build.xml

Page 90: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 90

Importar los tasks desde el script predefinido

Desde la versión de Tomcat 5.5 existe un script que hace todo lo necesario

<project name="M3E1" default="default" basedir=".">../..<import file=“${tomcat.home}”/bin/catalina-tasks.xml”/>../..</project>

build.xml

Page 91: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 91

Usar los tasks (I)

Una vez hemos importado los tasks ya los podemos utilizar en nuestros targets para llevar a cabo las diferentes tareas administrativas

Para ver el detalle de uso de cada task, consultar la documentación on-line para el paquete org.apache.catalina.ant

Page 92: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 92

Usar los tasks (II)

<target name="deploy"><deploy url="${tomcat.manager.url}" username="${tomcat.username}"

password="${tomcat.password}" path="${context.path}" war="${war.file}" update="true"/>

</target>

<target name="reload"><reload url="${tomcat.manager.url}" username="${tomcat.username}"

password="${tomcat.password}" path="${context.path}"/></target>

<target name="start"><start url="${tomcat.manager.url}" username="${tomcat.username}"

password="${tomcat.password}" path="${context.path}"/></target>

<target name="stop"><stop url="${tomcat.manager.url}" username="${tomcat.username}"

password="${tomcat.password}" path="${context.path}"/></target>

Ejercicio M5E3

Page 93: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 93

Gestión mediante peticiones HTTP (I)

Los comandos se lanzan con peticiones HTTP desde un navegador

El formato general de la petición es: http//{nombre_host}:{puerto}/manager/{comando}?{params}

comando: list, sessions, start, stop, install, remove, deploy, undeploy, reload, serverinfo, roles, resources, status, jxmget, jxmset y jxmproxy

params: depende del tipo de comando

Las respuestas son en texto plano (no HTML)

Page 94: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 94

Gestión mediante peticiones HTTP (II)

Un navegador web sólo puede enviar peticiones GET

Algunas operaciones requieren peticiones POST o PUT y por tanto requerirán de un cliente más sofisticado que un navegador

Para ver un listado de las diferentes operaciones y sus parámetros ver el capítulo 8 del libro

Page 95: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 95

Petición HTTP: listar aplicaciones desplegadas

Page 96: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 96

¿Qué hemos visto?

Hay diferentes manera de gestionar las aplicaciones web

Mediante el Tomcat Manager que es una aplicación web que requiere activación previa

Mediante tareas Ant que permite automatizar los procesos

Mediante peticiones HTTP

Page 97: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 97

Módulo 6

Características avanzadas

Page 98: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 98

Objetivos

Entender las sesiones persistentes

Configurar recursos JNDI

Configurar una sesión JavaMail

Page 99: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 99

¿Por qué sesiones persistentes?

Por defecto, las sesiones de Tomcat están configuradas para sobrevivir a reinicios del servidor, pero si queremos más control deberemos configurarlo

Sesiones inactivas (pero no caducadas) se pueden configurar para que se copien a disco liberando los recursos de memoria asociados

Al parar Tomcat todas las sesiones se vuelcan a disco por lo que al arrancarlo de nuevo se podrán restaurar

Las sesiones que tengan un tiempo de vida que supere cierto límite se copian a disco automáticamente evitando posibles death-locks

Page 100: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 100

Configurar las sesiones persistentes

Se gestiona mediante el elemento <Manager> como un subelemento de <Context>

Podemos definirlo de manera global si lo situamos en el <TOMCAT_HOME>/conf/context.xml

Podemos definirlo de manera local a una aplicación web si lo ponemos en su fichero META-INF/context.xml

Page 101: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 101

El elemento Manager

Page 102: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 102

Ejemplo de configuración

<Context><Manager className="org.apache.catalina.session.PersistentManager"

saveOnRestart="true"maxActiveSession="3"minIdleSwap="0"maxIdleSwap="60"maxIdleBackup="0"><Store className="org.apache.catalina.session.FileStore"/>

</Manager></Context>

Ejercicio M6E1

Page 103: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 103

¿Qué es JNDI?

JNDI = Java Naming and Directory Interface Es una API Java que da una abstracción para

acceder de igual forma a diferentes servicios de directorio (LDAP, MS ADS, otros)

Aplicación Java Aplicación Java Aplicación Java Aplicación Java

JNDI

DriverLDAP

Driver ADS

Otrosdrivers

Page 104: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 104

¿Qué recursos se ofrece JNDI?

Autenticación (nombre de usuario y contraseña)

Políticas de control de acceso Directorios de la organización Servidores Impresoras Otros objetos o recursos

Page 105: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 105

Tomcat y JNDI (I)

Los recursos se preconfiguran global o localmente (server.xml o context.xml) en el servidor

Las aplicaciones web acceden a estos recursos preconfigurados

Page 106: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 106

Tomcat y JNDI (II)

Recurso JNDIpreconfiguradoen server.xml

ServidorTomcat

Aplicación Web

Aplicación Web

Aplicación Web

Leer y emularfuncionalidad JNDI

Búsqueda JNDI

Recurso devuelto

Page 107: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 107

Ámbito de config. de recursos JNDI

A nivel global de servidor, disponible para todos los servicios y motores. En el elemento <GlobalNamingResources> del server.xml

A nivel de host virtual. En el elemento <DefaultContext> del server.xml

A nivel de <Context>, asociado a una aplicación web (seguramente en el META-INF/context.xml)

Page 108: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 108

Subelementos JNDI soportados

Son elementos hijos de <Context> o <DefaultContext>

Page 109: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 109

Atributos del elemento Environment

<Environment name=“monedaPorDefecto” type=“java.lang.String” value=“euro” />

Ejercicio M6E2

Page 110: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 110

JavaMail y JNDI

JavaMail es una API utilizada para crear y enviar correo electrónico

Tomcat soporta la configuración JNDI de una sesión JavaMail

Page 111: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 111

Instalar JavaMail

Descargar mail.jar de http://java.sun.com/products/javamail/downloads/index.html

Descargar activation.jar de http://java.sun.com/products/javabeans/jaf/index.jsp

Copiar los jars a <TOMCAT_HOME>/lib/

Page 112: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 112

Configurar JNDI para JavaMail

Al igual que los elementos Environment, podemos definirlo en los diferentes ámbitos

<Context><Resource name="mail/Session" auth="Container“

type="javax.mail.Session" /><ResourceParams name="mail/Session">

<parameter><name>mail.smtp.host</name><value>localhost</value>

</parameter><parameter>

<name>mail.smtp.port</name><value>25</value>

</parameter></ResourceParams>

</Context>

Ejercicio M6E3

Page 113: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 113

¿Qué hemos visto?

Para gestionar sesiones persistentes tenemos el elemento Manager que se configura a nivel de contexto (global o local a una webapp

JNDI es una API que nos permite acceder a diferentes servicios de directorio de manera independiente

JNDI nos permite configurar en el servidor recursos (como JavaMail) que luego podrán ser accedidos desde las aplicaciones

Page 114: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 114

Módulo 7

Conexión con bases de datos

Page 115: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 115

Objetivos

Entender JDBC

Configurar una DataSource a través de JNDI

Interactuar con MySQL

Page 116: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 116

¿Qué es JDBC?

La mayoría de bases de datos comerciales de hoy día son bases de datos relacionales

JDBC es una API Java que se abstrae del proveedor de bases de datos relacional haciendo transparentes las diferencias entre ambas

JDBC proporciona una interfaz SQL y de conexión contra los diferentes SGBDs

Page 117: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 117

Diagrama básico de JDBC

Aplicación Java

Librería JDBC

Driver JDBC SGBD

Independiente del SGBD

Dependiente del SGBD

Llamadas JDBC

Peticiones SQL nativas

Respuestas SQL nativas

Page 118: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 118

Misión de las operaciones JDBC

Recibir las llamadas de la API JDBC y transformarlas en una consulta SQL

Enviar esa consulta al SGBD

Recuperar el conjuntos de resultados y transformarlo en una estructura de datos Java

Page 119: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 119

Etapas en la programación JDBC

Obtener una conexión a un servidor de bases de datos remoto

Generar y preparar una sentencia SQL

Ejecutar la sentencia SQL

Obtener el conjunto resultado y trabajar con él

Desconectarse de la base de datos remota

Page 120: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 120

Pool de conexiones

Los procesos de conexión y desconexión de una base de datos son costosos en recursos y tiempo

Un pool es un componente que almacena conexiones físicas pre-establecidas contra el SGBD y que las proporciona a los componentes que las requieran bajo demanda

Cuando un componente ha terminado de utilizar una conexión al cerrarla, en realidad la está devolviendo al pool pero la conexión física permanece abierta y disponible para un nuevo “usuario”

Page 121: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 121

Funcionamiento de un pool

AplicaciónWeb SGBD

1.- Solicita conexión

2.- Recibir conexión lógica

3.- Cerrar conexión lógica

4.- Conexión físicadevuelta al pool

Page 122: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 122

Emulación JNDI y los pool en Tomcat 6

Tomcat ofrece Acceder a las fuentes de datos JDBC mediante

una búsqueda JNDI Utilizar el pool propio de Tomcat (DBCP

JakartaComons)

Page 123: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 123

Configurar una conexión JNDI

Añadir una etiqueta <Resource> en el elemento <Context> (META-INF/context.xml) o en el elemento <DefaultContext> (en server.xml)

Confirmar que se ha definido un elemento <resource-ref> en el DD que se corresponderá con el elemento <Resource> del paso anterior

Utilizar llamadas JNDI en el código de la aplicación para buscar la fuente de datos JDBC

Page 124: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 124

La etiqueta Resource

<Resource name="jdbc/oficina” auth="Container" type="javax.sql.DataSource"maxActive="20" maxIdle="30" maxWait="10000"username="user" password="pass"url="jdbc:mysql://localhost:3306/oficina"driverClassName="com.mysql.jdbc.Driver" />

Ejercicio M7E1

Page 125: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 125

¿Qué hemos visto?

Java ofrece la API JDBC para conectarnos de manera independiente a diferentes SGBDs

Un pool es un componente que permite gestionar las conexiones obteniendo un mayor rendimiento

Tomcat permite acceder a fuentes de datos mediante JNDI y tiene un pool integrado

Page 126: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 126

Módulo 8

Conectores

Page 127: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 127

Objetivos

Entender los diferentes conectores HTTP

Entender la configuración con un servidor web actuando de front-end

Configurar Apache y Tomcat para que se comuniquen

Page 128: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 128

Los modos de operaciones de Tomcat

Servidor de aplicaciones Tomcat requiere un servidor web que actúe de frontend

(Apache, IIS u otro) El contenido estático es servido por el frontend Las peticiones a servlets y JSPs son redirigidas a

Tomcat por el servidor web Recibe peticiones en protocolos específicos como AJP

que son enviados por el frontend

Standalone No hay un servidor web que actúe de frontend Todos los contenidos son servidos por Tomcat Recibe peticiones HTTP

Page 129: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 129

¿Qué son los conectores?

Son los componentes que proporcionan la interfaz externa al servidor

Existen conectores para diferentes protocolos (HTTP, AJP…)

El conector HTTP/1.1 basado en Coyote es el conector por defecto

Page 130: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 130

Conectores HTTP disponibles

Conector HTTP/1.1 basado en Java (Coyote)

Conector HTTP de alta eficiencia NIO basado en Java

Conector HTTP APR optimizado con código nativo

Page 131: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 131

Conector HTTP/1.1

Como hemos visto, los conectores se definen en el <TOMCAT_HOME>/conf/server.xml

El único atributo obligatorio es el port

<Conector port=“8080”protocol=“HTTP/1.1”maxThreads=“150”connectionTimeout=“2000”redirectPort=“8443” />

Page 132: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 132

Atributos del conector HTTP/1.1 (I)

Page 133: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 133

Atributos del conector HTTP/1.1 (II)

Page 134: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 134

Conector HTTP/1.1 con SSL

Utiliza los mismos atributos que el conector HTTP/1.1 (adicionalmente veremos otros más)

Debería tener el atributo secure a true y el scheme a https

<Conector port=“8443”protocol=“HTTP/1.1”maxThreads=“150”scheme=“https”secure=“true”clientAuth=“false”sslProtocol=“TLS” />

Page 135: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 135

Atributos HTTP/1.1 relacionados con SSL

Page 136: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 136

El conector NIO

Es un conector escrito en Java que utiliza las nuevas librerías NIO de Java 5

Proporcionar operaciones sin bloqueo Soporta Comet (técnica de programación

similar a Ajax que permite enviar información al cliente sin que la haya solicitado)

<Conector port=“8080”protocol=“org.apache.coyote.http11.Http11NioProtocol”maxThreads=“150”connectionTimeout=“20000”redirectPort=“8443” />

Page 137: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 137

¿Qué es APR?

APR (Apache Portable Runtime) es una librería de código nativo escrita en C/C++ dependiente de la plataforma

Existen versiones para Windows, Linux y Unix No es estrictamente un conector, pero cuando

se activa el conector estándar delega la mayoría de sus operaciones en él

Al utilizar código nativo incrementa la eficiencia y escalabilidad

Page 138: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 138

¿Por qué es más eficiente y escalable?

Utiliza una llamada sendFile() en modo núcleo para enviar grandes ficheros estáticos directamente desde el sistema de ficheros nativo

Usa un solo consultor de persistencia de código nativo para implementar conexiones persistentes para un gran número de conexiones

Utiliza código nativo de OpenSSL, el cual tiene capacidad de acelerar la implementación del controlador SSL (mediante hardware)

Page 139: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 139

Activar APR (I)

Instalar las librerías nativas Descargar la librería

En los sistemas Unix / Linux suele estar incluida de serie

Para Windows puede descargarse de: http://tomcat.heanet.ie/native

Configurar la librería En Unix / Linux incluirla en LD_LIBRARY_PATH En Windows incluirla en el PATH

Page 140: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 140

Activar APR (II)

Modifica el conector para que use APR

Ejercicio M8E1

<Conector port=“8080”protocol=“org.apache.coyote.http11.Http11AprProtocol”maxThreads=“150”connectionTimeout=“20000”redirectPort=“8443” />

Page 141: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 141

¿Standalone o sevidor de front-end?

La eficiencia del código nativo APR y las JVM modernas hace que la elección no sea trivial considerando sólo la eficiencia

Una configuración clúster con balanceo de carga obliga a tener un front-end

El soporte de seguridad de Apache e IIS es significativamente mejor que el de Tomcat

Si la estrategia web incluye otros mecanismos dinámicos (PHP, Perl, Python, ASP…) requeriremos un servidor de front-end especializado

Page 142: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 142

Configuración front-end con Apache

Para implementar la comunicación se requieren módulos especializados en ambos extremos

Estos módulos se comunican con el protocolo AJP

En el lado de Apache son módulos escritos en C/C++

En el lado Tomcat son conectores AJP escritos en Java

Page 143: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 143

Arquitectura de la integración

Apache Tomcat

Módulo Conector AJP

Petición de recursos estáticos

Petición de recursos dinámicos:servlets,JSPs

Protocolo HTTP

Protocolo AJP

Page 144: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 144

Características de AJP1.3

Eficiencia optimizada en redes rápidas (como ethernet gigabit)

Compresión para optimizar el ancho de banda

Soporte para SSL, cifrado y certificados de cliente

Soporte de clústeres

Page 145: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 145

Módulos disponibles para Apache (I)

Dos opciones mod_jk: el módulo “tradicional” mod_proxy: módulo estándar de Apache que

en sus últimas versiones soporta AJP

¿Cuál es la mejor opción? mod_proxy El esfuerzo de desarrollo se ha centrado en

este módulo Es estándar de Apache (lo tendremos

disponibles sin tener que construirlo) Es más fácil (estándar) de configurar

Page 146: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 146

Módulos disponibles para Apache (II)

SíSí (necesita código de la 2.2)

Nomod_proxy

SíSíSímod_jk

2.2.x2.0.x1.3.x

Versión de Apache

Page 147: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 147

mod_jk: Concepto de worker

Representa una instancia de Tomcat en ejecución

Cuando tenemos un cluster tenemos más de un worker

Cada worker se identifica por un nombre de host (máquina donde está la instancia Tomcat) único o una combinación de dirección IP y número de puerto (puerto donde escucha el protocolo AJP)

Page 148: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 148

mod_jk: El fichero workers.properties (I)

Es un fichero que se situa en <APACHE_HOME>/conf

Es leído por el módulo de Apache que se encargará de enviar las peticiones AJP contra las diferentes instancias de Tomcat

Contiene Descripción de la lista de workers Descripción de cada instancia de worker de la

lista anterior

Page 149: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 149

mod_jk:El fichero workers.properties (II)

worker.list = testworker1, tesworker2worker.testworker1.type = ajp13worker.testworker1.host = 192.168.1.128worker.testworker1.port = 9009worker.testworker1.connection_pool_size = 5worker.testworker1.connection_pool_timeout = 300worker.testworker2.type = ……

workers.properties

Page 150: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 150

mod_jk: Propiedades de los workers

Page 151: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 151

mod_jk: Tipos de worker

ajp13: representa una instancia en ejecución de Tomcat

lb: se emplea para equilibrio de cargas. Este worker no procesa peticiones sino que las redirige a otros worker de tipo ajp13 en función de su carga

status: se utiliza para mostrar información útil de carga

jni: es un protocolo que permite enviar peticiones entre Apache y Tomcat a través de memoria porque comparten el mismo proceso

Page 152: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 152

mod_jk: Configuración de Apache

Construir el módulo mod_jk y copiarlo en <APACHE_HOME>/modules

Añadir la directiva correspondiente en httpd.conf

Configurar el wokers.properties

LoadModule jk_module modules/mod_jk.so

Page 153: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 153

mod_proxy: Configuración de Apache

Añadir la directiva correspondiente en httpd.conf

Editar la configuración de proxy en http.conf, p.e.:

LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.soLoadModule proxy_balancer_module modules/mod_proxy_balancer.so

ProxyRequests OffProxyPreserveHost On<Proxy *>

Order deny,allowAllow from all

</Proxy>ProxyPass /examples/jsp ajp://localhost:8009/examples/jspProxyPassReverse /examples/jsp ajp://localhost:8009/examples/jsp<Location /examples/jsp>

Order allow,denyAllow from all

</Location>

Page 154: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 154

Tomcat: config. del conector AJP

En el lado de Tomcat, las peticiones AJP se reciben en un conector AJP independiente del módulo que esté usando Apache

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Ejercicio M8E2

Page 155: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 155

¿Qué hemos visto?

Tomcat proporciona conectores HTTP eficientes que lo convierten en una opción válida para una configuración standalone

La configuración con un servidor web actuando de front-end puede seguir teniendo sentido (para montar un cluster, por ejemplo)

La comunicación entre un servidor web y Tomcat se hace mediante un protocolo eficiente llamado AJP que implica la inclusión de módulos en el servidor web y la activación de un conector AJP en Tomcat

Page 156: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 156

Módulo 9

Seguridad

Page 157: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 157

Objetivos

Asegurar la instalación de Tomcat

Entender el soporte de autenticación para las aplicaciones Web

Configurar el soporte para cifrado SSL

Page 158: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 158

Verificar la integridad de la descarga

Es importante asegurarnos que el código que nos descargamos no ha sido modificado por una fuente maliciosa

Para verificarlo disponemos de dos opciones Funciones de hash MD5 claves PGP

En Windows hay diferentes herramientas que calculan las funciones de hash

Page 159: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 159

Eliminar las aplicaciones por defecto

ROOT, tomcat-docs y examples No aportan funcionalidad en producción Riesgo mínimo pero potencialmente podría haber un

exploit manager y host-manager

Por su funcionalidad (tareas administrativas) presentan el mayor riesgo

Deberían ser eliminadas por completo Si fueran necesarias:

Cambiar el mecanismo de autenticación de BASIC a un tipo más seguro

Permitir sólo el acceso de direcciones específicas Elegir un usuario y password difícil de adivinar

Page 160: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 160

Cambiar el comando de SHUTDOWN

Ya hemos visto que el componente Server permite configurar un puerto y un comando de apagado del servidor

Se debería cambiar el puerto y la palabra clave por defecto

También es una buena idea bloquear el acceso al puerto mediante un firewall

<Server port=“8123” shutdown=“byebye” />

Page 161: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 161

Ejecutar Tomcat con una cuenta restringida

Si un atacante se hace con el control de Tomcat es importante que el usuario que lo ejecuta no tenga privilegios para dañar el sistema

El Unix / Linux crear un usuario cuyos únicos privilegios sea ejecutar Tomcat

En Windows crear un usuario no administrativos y utilizar la utlidad Servicios de las carpeta Herramientas administrativas para establecer el usuario

Page 162: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 162

Gestor de servicios

Page 163: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 163

Asegurar el sistema de ficheros (I)

En Windows sólo podremos restringir acceso a ficheros si

con NTFS (con FAT32 no hay nada que hacer) NTFS se basa en listas de control de acceso:

se puede establecer qué usuarios acceden a un recurso

Deberíamos denegar el acceso a todos los ficheros de todas las particiones

En Unix / Linux los permisos se establecen explícitamente mediante usuarios y grupos

Page 164: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 164

Asegurar el sistema de ficheros (II)

Conceder permisos de lectura y ejecución sobre los ficheros de la JRE

Conceder permisos de lectura sobre <TOMCAT_HOME>/bin <TOMCAT_HOME>/lib <TOMCAT_HOME>/webapps (aunque esto inhabilita el

uso del manager como herramienta para desplegar nuevas webapps)

Conceder permisos de lectura y escritura sobre <TOMCAT_HOME>/conf

Page 165: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 165

Utilizar el gestor de seguridad de Java

La arquitectura de seguridad de Java está basada en permisos

Una vez activado (no lo está por defecto), las aplicaciones deberán tener permiso explícito para realizar ciertas tareas

Los permisos se conceden mediante ficheros de políticas

El fichero de políticas de Tomcat es <TOMCAT_HOME>/conf/cataina.policy

Para activar el gestor: <TOMCAT_HOME>/bin/catalina start -security

Page 166: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 166

Proteger aplicaciones web

Hasta ahora hemos visto como proteger Tomcat y la plataforma

Las seguridad a nivel de aplicación puede categorizarse en; Autenticación y Realm Cifrado Restricción de Host

Page 167: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 167

Autenticación y Realm

Autenticar es el proceso de determinar y validar la identidad de un cliente

J2EE proporciona la API JAAS (Java Autentication and Authorization Service) como mecanismo estándar de autenticación

El uso de JAAS garantiza la portabilidad del mecanismo de autenticación entre diferentes servidores

El mecanismo de Realm de Tomcat es una implementación de JAAS

Page 168: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 168

Mecanismos de autenticación

BASIC

DIGEST

Formularios

Certificado de cliente HTTP

Page 169: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 169

Mecanismo BASIC

Es una aproximación simplista

El navegador envía credenciales (user y password) cifradas en base64 al servidor que descifrará y utilizará para autentificar

Problemas base64 no es un mecanismo de cifrado seguro Los navegadores guardan en caché las

credenciales

Page 170: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 170

Mecanismo DIGEST

Es similar a BASIC con la diferencia que la contraseña se transmite de forma segura El cliente aplica una función de hash sobre la

contraseña y transmite el resultado al servidor. Éste realiza la misma operación sobre el password que tiene almacenado y compara los resultados

Problemas La contraseña original debe almacenarse en algún lugar

(habrá que proteger adecuadamente este recurso) El navegador guarda en caché las credenciales

Java soporta los hash MD5 y SHA

Page 171: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 171

Mecanismo de formularios

El navegador no coopera y es la aplicación web la que tiene que crear un formulario que permita enviar las credenciales

La transmisión de los datos se puede hacer sobre HTTPS garantizando el cifrado de datos

Problema Sigue habiendo dependencia de usuarios y

credenciales que pueden obtenerse por fuerza bruta o ingeniería social

Page 172: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 172

Mecanismo de certificados digitales

Se utilizan certificados digitales de manera simétrica El cliente puede estar seguro que se conecta al servidor

que pretendía (como certifica una entidad externa como VeriSign) mediante la clave pública

El servidor recibe un certificado del cliente que le permite autenticarlo

Es un sistema muy seguro aunque generalmente se usan mecanismos más sencillos como la autenticación a través de formularios sobre HTTPS

Page 173: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 173

Configurar la aplicación web

…<security-constraint> <display-name>todo</display-name> <web-resource-collection> <web-resource-name>TodaLaAplicacion</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>administrador</role-name> </auth-constraint></security-constraint><login-config> <auth-method>BASIC</auth-method> <realm-name>MiRealm</realm-name></login-config><security-role> <role-name>administrador</role-name></security-role>….

web.xml

Page 174: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 174

Configurar los Realm en Tomcat

El modelo se construye sobre los conceptos de usuarios y roles

La aplicación declara en su descriptor qué roles pueden acceder a qué recursos y los usuarios que dispongan de ese rol tendrán acceso

Los Realm, se configuran en Tomcat (no en la aplicación) y así se pueden añadir y borrar usuarios dinámicamente

Existen diferentes implementaciones: JDBCRealm, DataSourceRealm, JNDIRealm, MemoryRealm, JAASRealm

Page 175: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 175

MemoryRealm

Los usuarios y roles se almacenan en un fichero de texto editable (p.e. XML) que se carga en memoria

Ejercicio M9E1

<tomcat-users> <role rolename="administrador"/> <user username="admin" password="admin2" roles="administrador"/></tomcat-users>

mis-usuarios.xml

<Context path="/M3E1"> <Realm className="org.apache.catalina.realm.MemoryRealm" pathname="conf/mis-usuarios.xml" /></Context>

context.xml

Page 176: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 176

JDBCRealm

Almacena las credenciales en una base de datos

users

PK login

password

user_roles

PK,FK1 loginPK role

<Realm className=“org.apache.catalina.realm.JDBCRealm”driverName=“com.mysql.jdbc.Driver”connectionURL=“jdbc:mysql://localhost/autoridad”connectionName=“tomcat”connectionPassword=“tomcat”userTable=“users” userNameCol=“login” userCredCol=“password”userRoleTable=“user_roles”roleNameCol=“role” digest=“md5”/>

Ejercicio M9E2

Page 177: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 177

Cifrado SSL

Protocolo que permite una conexión segura entre clientes y servidores en una red

Tiene protocolos de clave pública/privada y de clave simétrica

HTTPS utiliza HTTP sobre SSL para ofrecer encriptación y autenticación fiable

Page 178: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 178

Añadir soporte SSL a Tomcat

Descargar e instalar una implementación SSL (podemos usar la librería JSSE estándar de Java o la implementación nativa APR)

Crear un almacén de claves de certificado al que añadiremos un certificado que firmaremos nosotros

Obtener un certificado de una agencia de certificación externa como VeriSign para que los usuarios puedan confiar en nuestro certificado (en desarrollo podemos obviar este paso)

Configurar Tomcat para SSL

Page 179: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 179

Preparar el almacén de claves

Lo hacemos mediante la herramienta <TOMCAT_HOME>/bin/keytool

Page 180: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 180

Configuración de Tomcat

Situamos el almacén de claves y configuramos el conector

<Connectorport=“8443” scheme=“https” secure=“true” SSLEnabled=“true”keystoreFile=“store” sslProtocol=“TLS” keystorePass=“clave-segura” />

Conector Java

<Connectorprotocol=“org.apache.coyote.http11.HttpAprProtocol”port=“8443” scheme=“https” secure=“true” SSLEnabled=“true”SSLCertificateFile=“/mycertdir/server.crt” SSLCertificateKeyFile=“/mycertdir/ssl/server.pem” />

Conector Nativo APR

Page 181: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 181

Configurar la webapp para que use SSL

Hay que editar el descriptor de despliegue para añadir una user-data-constraint especificando protocolo CONFIDENTIAL

<security-constraint> <display-name>todo</display-name> <web-resource-collection> <web-resource-name>TodaLaAplicacion</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>administrador</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>

web.xml

Ejercicio M9E3

Page 182: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 182

¿Qué hemos visto?

Hay que personalizar la configuración por defecto de Tomcat cuando esté en entorno de producción para garantizar la seguridad

J2EE define un estándar de autentificación para la aplicaciones web que se basa en Realms que Tomcat implementa

Tomcat tiene conectores que proporcionan SSL

Page 183: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 183

Módulo 10

Alojamiento Compartido

Page 184: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 184

Objetivos

Entender las nociones de alojamiento compartido

Page 185: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 185

¿Qué es el alojamiento compartido?

Pequeñas organizaciones es posible que no puedan permitirse tener su propio Tomcat (máquinas, ingenieros, etc.)

Se puede subcontratar el servidor a un proveedor de servicios

Estos proveedores suelen proporcionar soluciones en las que se comparten recursos: bases de datos, servidores de correo, firewall, servidores web y servidores de aplicaciones

Page 186: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 186

Alojamiento virtual

El alojamiento virtual se refiere a que una misma máquina física proporciona más de un servidor web (o de aplicaciones)

Tipos Basado en IP: cada dominio web necesita

tener una dirección IP diferente que es lo que usa el servidor para diferenciar peticiones

Basado en nombres: los dominios pueden compartir IP y las peticiones se diferencian por nombre

Page 187: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 187

Alojamiento virtual basado en IP

Necesitamos que la máquina tenga más de una IP válida

Funciona con todos los clientes HTTP (aunque usen la versión 1.0)

El número de hosts virtuales máximo está limitado y la administración asociada a la gestión de muchas IPs puede ser tediosa

Page 188: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 188

Alojamiento virtual basado en nombres

La máquina no necesita más de una dirección IP

Para poder funcionar se basa en la cabecera Host que es una característica de HTTP 1.1 por lo que es posible que no todos los clientes puedan conectarse

La administración es más sencilla

Page 189: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 189

Configurar Tomcat para alojamiento virtual basado en nombres

Está disponible desde las primeras versiones Consiste en añadir nuevas entradas Host a

nivel de Engine

<Engine name=“Catalina” defaultHost=“dominio1.com” debug=“0”>…

<Host name=“dominio1.com” debug=“0”autoDeploy=“true” unpackWar=“true”appBase=“/websites/dominio/webapps” />

<Host name=“dominio2.com” debug=“0”autoDeploy=“true” unpackWar=“true”appBase=“/websites/dominio/webapps” />

</Engine>

server.xml

Page 190: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 190

Configurar Tomcat para alojamiento virtual basado en IP

Es una característica nueva desde la 5.5 La configuración es prácticamente la misma excepto en que

activamos un atributo a nivel de conector que fuerza a ignorar la cabecera Host de HTTP/1.1 con lo que sólo se usará la IP

<Connector port=“8080” protocol=“HTTP/1.1” redirectPort=“8443” useIPVHosts=“true”>…<Engine name=“Catalina” defaultHost=“dominio1.com” debug=“0”>…

<Host name=“dominio1.com” debug=“0”autoDeploy=“true” unpackWar=“true”appBase=“/websites/dominio/webapps” />

<Host name=“dominio2.com” debug=“0”autoDeploy=“true” unpackWar=“true”appBase=“/websites/dominio/webapps” />

</Engine>

server.xml

Page 191: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 191

Configuración con front-end y alojamiento virtual

Apache también se puede configurar para trabajar con los dos modos de alojamiento virtual

Tomcat también soporta el modo de alojamiento virtual teniendo un front-end Apache

Page 192: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 192

Arquitectura en modo front-end

ClienteWeb

Gestorde

peticiones

Módulo de Host Virtual

mod_jk Conector AJP

Host Virtual 1

Host Virtual 2

Host Virtual N

TomcatApache

Page 193: Instalación y Administracióln de Apache Tomcat 6 - JJD 110 ·  · 2009-02-09Apache Server (A PAtCHy Web Server) ... Límites de la tecnología Java Contenedor Web Contenedor EJB

Inst

ala

ció

n y

Ad

min

istr

ació

n d

e A

pa

che

To

mca

t

Nº 193

¿Qué hemos visto?

El alojamiento virtual tiene sentido cuando se quiere compartir el mismo servidor entre diferentes usuarios

Existe alojamiento virtual por IP o por nombre

Tomcat 6 en modo standalone soporta ambos

También se puede configurar con un front-end