configuración tomcat2

Upload: carmelo

Post on 30-May-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 Configuracin Tomcat2

    1/63

    Configuracin Tomcat

  • 8/9/2019 Configuracin Tomcat2

    2/63

    Tras instalar Tomcat y ejecutarlo, debemos

    vigilar cmo funciona.

    Podemos utilizar Tomcat: como una servidor Web y contenedor de servlets

    independiente

    contenedor de servlets que complementa a otro

    servidor Web se pueden dar ambas opciones.

  • 8/9/2019 Configuracin Tomcat2

    3/63

    Servidor Web independiente

    el servidor Web incorporado de Tomcat es un

    servidor HTTP1 que sirve contenido esttico

    con bastante rapidez.

    Tb se aaden a Tomcat caractersticas propias

    de servidores Web como CGI Scripting,

    direcorio de usuario

  • 8/9/2019 Configuracin Tomcat2

    4/63

    Combinado

    Muchas empresas utilizan un servidor httpd Apache.

    el servidor httpd de Apache puede ser menos eficienteal servir el contenido que Tomcat por separado.

    el servidor Web Tomcat est optimizado, y los tiemposde ejecucin Java son muy buenos en compilar Tomcat.

    al configurar Tomcat para que todas sus peticionesviajen primero a travs del servidor httpd Apache seralentiza el tiempo de respuesta de Tomcat.

    An as, se pueden utilizar el servidor httpd de Apachey Tomcat conjuntamente.

  • 8/9/2019 Configuracin Tomcat2

    5/63

    Realojar el directorio de las

    aplicaciones Web Segn cmo se instala Tomcatpodemos

    querer almacenar los ficheros de la aplicacin

    Wen en el rbol de direcotrios de la

    distribucin Tomcat.

    Si por ejemplo, vamos a actualizar la instalacin

    de Tomcat peridicamentealgunos ficheros

    pueden sobreescribirse (ej.CATALINA_HOME/conf/server.xml)

  • 8/9/2019 Configuracin Tomcat2

    6/63

    Actualizar el paquete Tomcat significa sustituir

    los archivos de configuracin por versiones de

    otra nueva versin del paquete que se

    actualiza.

  • 8/9/2019 Configuracin Tomcat2

    7/63

    Otro caso en que no queremos almacenar los

    ficheros de la aplicacin Web en el rbol de

    directorios de la distribucin Tomcat

    si instalamos ms de una copia de Tomcat y

    ejecutamos ms de una instancia

    si cada instancia sirve contenido diferente en puertos

    TCP diferentes

    que cada Aplicacin Web est en su propia JVM para

    que puedan operar independientes

  • 8/9/2019 Configuracin Tomcat2

    8/63

    Para tener instalada una distribucin Tomcat yejecutar dos o ms instancias que estnconfiguradas de forma diferente

    debemos mantener los ficheros de cada instanciaJVM por separado

    Durante el uso normal de Tomcat, el servidorlee la configuracin de los direcotrios conf y

    Webapps y escribe ficheros en los directorioslogs, temp y work

  • 8/9/2019 Configuracin Tomcat2

    9/63

    algunos ficheros jar y class pueden tener que

    cargarse desde los rboles de directorios

    shared, server y common.

    para que funcionen entonces varias instancias,

    cada instancia de Tomcat debe tener su propio

    conjunto de directorios.

  • 8/9/2019 Configuracin Tomcat2

    10/63

    El truco para hacer este trabajo es establecer

    la variable de entorno CATALINA_HOME

    donde hemos instalado la distrubicn binaria

    Tomcat (los ficheros vienen de

    http://tomcat.apache.org) y ajustar la variable

    de entorno CATALINA_BASE a una ruta

    diferente en donde se alamacenan losarchivos de la instancia JVM (estos archivos

    vienen de nosotros)

  • 8/9/2019 Configuracin Tomcat2

    11/63

    tras establecer estas dos variables de entorno,

    iniciamos Tomcat.

    se ejecuta utilizanod los ficheros deCATALINA_BASE sobre la distribucin binaria

    Tomcat en CATALINA_HOME

    As podemos separar los ficheros de Tomcat

    de los nuestros, permitendo modificar todo lo

    que necesitemos.

  • 8/9/2019 Configuracin Tomcat2

    12/63

    Primero cambiamos el directorio al directorio

    en donde queremos colocar los ficheros de la

    instancia

    ste ser nuestro directorio CATALINA_BASE

    lo podemos poner en cualquier parte de nuestro

    sistema

    creamos un directorio llamado /opt/tomcat-

    instance

  • 8/9/2019 Configuracin Tomcat2

    13/63

    despus creamos un directorio para la nueva

    instancia de Tomcat (se puede llamar como el

    sitio que vamos a almacenar)

    ejemplo.com

    podemos poner rutas en lugar de punto o guin bajo

  • 8/9/2019 Configuracin Tomcat2

    14/63

    Ahora copiamos el direcotrio config de la

    distribucin Tomcat a este nuevo direcotrio y

    creamos el resto de directorios de la instancia

    Tomcat

    creamos los directorios common, logs, temp,

    server, shared, Webapps, work

  • 8/9/2019 Configuracin Tomcat2

    15/63

    Colocamos el contenido de la aplicacin Web

    para esta instnacia en el subdirecotrio de

    CATALINA_BASE como haramos en cualquier

    otra configuracin de Tomcat

    Editamos el fichero conf/server.xml para que

    sea especfico con la instancia

  • 8/9/2019 Configuracin Tomcat2

    16/63

    debemos modificar slo lo necesario para que

    la instancia funcione como queremos.

    la instancia no debe intentar abrir los mismospuertos y servidores que otra instancia.

    Cambiamos el puerto de cierre por un nmero

    de puerto diferente para cada instancia de

    Tomcat

  • 8/9/2019 Configuracin Tomcat2

    17/63

    y los puertos de cualquier conector

  • 8/9/2019 Configuracin Tomcat2

    18/63

    podemos buscar en el texto el atributo port= y

    modificar el valor del puerto de ese atributo si

    su elemento no est comentado.

    Eliminamos todos los elementos del ejemplo

    Contexto y cualquier cosa anidada a ellos y

    aadimos un contexto de nuestr propia

    Webapp (se ver despus)

  • 8/9/2019 Configuracin Tomcat2

    19/63

    Repetimos estos pasos para crear directorios

    de la instancia CATALINA_BASE adicionales

    segn necesitemos.

    Si solo tenemos un sitio Web o queremos

    ejecutar solo una JVM Tomcat, solo

    necesitamos un arbol CATALINA_BASE

  • 8/9/2019 Configuracin Tomcat2

    20/63

    para iniciar una instancia, ajustamos

    ATALINA_BASE a la ruta completa del

    directorio de la instancia

    ajustamos CATALINA_HOME a la ruta

    completa del directorio de la distribucin

    Tomcat

    iniciamos Tomcat normalmente

  • 8/9/2019 Configuracin Tomcat2

    21/63

    CATALINA_BASE=/opt/tomcat-

    instance/ejemplo.com

    CATALINA_HOME =/opt/tomcat export CATALINA_BASE CATALINA_HOME

    start

  • 8/9/2019 Configuracin Tomcat2

    22/63

    Cambiar nmero de puerto 8080

    Tomcat, en su instalacin por defecto, est

    configurado para atender al puerto 8080 en

    lugar de al nmero de puerto de servidor Web

    convencional 80

    mejor pq el puerto por defecto 80 hacen falta

    privilegios especiales en Linux, Solaris, BSD

    Pero la mayora de veces, es lgico ejecutarTomcat en el puerto 80

  • 8/9/2019 Configuracin Tomcat2

    23/63

    para modificar el nmero de puerto, creamos

    el elemento Connector en el archivo

    server.xml

    buscamos la etiqueta XML

  • 8/9/2019 Configuracin Tomcat2

    24/63

  • 8/9/2019 Configuracin Tomcat2

    25/63

    Transmitir las conexiones TCP del

    puerto 80 al 8080 es cierto que el proceso JVM debe ejecutarse

    como usuario root para abrir un conector enelpuerto 80 en sistemas operativos distintos de

    Windows. pero la JVM no tendra que ejecutarse como

    root si algo ufera del proceso JVM pudiesetransmitir todas las conexiones TCP del puerto

    80 a Tocat en algun puerto superior al 1024(por ejemplo 8080)

  • 8/9/2019 Configuracin Tomcat2

    26/63

    Tomcat puede abrir un servidor Web en el

    puerto 8080 y otro elemento, con los

    permisos necesarios, puede transmitir las

    conexiones TCP a un puerto 8080 de Tomcat

    a esto se le llama port relaying o net filtering

    es una caracteristica muy prctica y muy

    comn.

    Se puede hacer de varias maneras en cada SO

  • 8/9/2019 Configuracin Tomcat2

    27/63

    en linux

    con la caracterstica iptables

    en otrosS

    O otras maneras de redireccionar el trfico TCP a

    diferentes puertos

    filtro de paquetes

  • 8/9/2019 Configuracin Tomcat2

    28/63

    Envoltorio

    Otra forma de ejecutar Tomcat en el puerto 80

    con un usuario distinto al usuario raz es

    utilizar un envoltorio de servicio binario.

    un envoltorio es un programa escrito en C y

    creado para esto

    ejecutar un servidor Java limitado a un puerto

    privilegiado en un SO distinto a Windows como unusuario distinto al usuario raz

  • 8/9/2019 Configuracin Tomcat2

    29/63

    Errores

    elegir un puerto ya en uso

    netstat a para ver que puertos estn en uso

  • 8/9/2019 Configuracin Tomcat2

    30/63

    Configuracin de la mquina virutual

    Java la forma en que se ejecuta Tomcat depende en

    parte de la configuracin de la mquina virtual de

    Java que se ejecuta.

    Si no configuramos la JVM para utilizar una

    determinada cantidad del rea de memoria

    dinmica, podremos no tener suficiente para la

    aplicacin Web que estamos intentando ejecutar. paginas de error

    respuesta errnea las peticiones

  • 8/9/2019 Configuracin Tomcat2

    31/63

    hay muchos ajustes relativos a Tomcat que

    pueden realizarse

  • 8/9/2019 Configuracin Tomcat2

    32/63

    Cuando iniciamos JVM, asigna una cantidadfija de memoria, si se ejecutan varios JVM, esacantidad puede ser demasiado

    elevada (Problemas con el servidor) odemasiado escasa (Problemas de memoria OutOfMemory ).

    Tomcat 6.0 tiene la posibilidad de configurar

    mediante parmetros la configuracin de lapila dinmica de memoria.

  • 8/9/2019 Configuracin Tomcat2

    33/63

    Las opciones que puede establecer son :

    Tamao inicial de la pila de Java : Parmetros -Xms

    Tamao mximo de la pila de Java : Parmetro -

    Xmx

    Tamao de la pila de proceso de Java ; Parmetro -

    Xss

    Tamao Mximo Memoria Permanente :Parmetro : -XX:MaxPermSize

  • 8/9/2019 Configuracin Tomcat2

    34/63

    Un Ejemplo :

    Para establecer un tamao inicial de

    384Mb : -Xms384m Para establecer un tamao mximo de

    512Mb : -Xmx512m

    Para establecer Memoria

    Permanente 256Mb : -

    XX:MaxPermSize=256m

  • 8/9/2019 Configuracin Tomcat2

    35/63

    Buscamos el programa catalina.bat que est

    en la carpeta : tomcat\bin\catalina.bat

    colocar estas dos instrucciones sobre la lnea70 :

    set CATALINA_OPTS=-Xms384m -Xmx512m -

    XX:MaxPermSize=256m

    set JAVA_OPTS=-Xms384m -Xmx512m -

    XX:MaxPermSize=256m

  • 8/9/2019 Configuracin Tomcat2

    36/63

    Existe otro fichero bat en la misma ruta

    llamado startup.bat, es aconsejable que

    tambin introduzcas dichas instrucciones

    sobre la lnea 28 ms o menos.

  • 8/9/2019 Configuracin Tomcat2

    37/63

    Reinos roles - usuarios

    la seguridad de las aplicaciones Web se

    pueden controlar a travs del contenedor o a

    travs de la propia aplicacin Web.

    La especifiacin JavaEE llama

    container-managed security

    application-managed security

  • 8/9/2019 Configuracin Tomcat2

    38/63

    Tomcat ofrece diferentes formas de gestionar

    la seguridad a travs de mecanismos

    incorporados, que representan la seguridad

    gestionada por el contenedor

    Si tb cuenta con servlets y pginas JSP que

    tienen su propio mecanismo de registro se

    considerara seguridad gestionada por laaplicacin

  • 8/9/2019 Configuracin Tomcat2

    39/63

    en los dos tipos de seguirdad, los usuarios y

    las contraseas se gestionan en grupos

    llamados reinos

  • 8/9/2019 Configuracin Tomcat2

    40/63

    la combinacin de la configuracin de un reino

    en el fichero conf/server.xml de Tomcat y

    en el fichero Web-

    INF/Web.xml de una aplicacin Web define

    cmo se almacena la info del usuario y el rol y

    cmo se identifica al usuario en la aplicacin

    Web

  • 8/9/2019 Configuracin Tomcat2

    41/63

    Reinos

    para utilizar la seguridad gestionada por el

    contenedor Tomcat, debemos crear un reino.

    Un reino es un conjunto de usuarios, claves yroles.

    las aplicaciones Web pueden decidir qu

    recursos son accesibles para qu grupo de

    usuarios en su fichero descriptor dedespliegue server.xml

  • 8/9/2019 Configuracin Tomcat2

    42/63

    luego, un administrador de Tomcat puede

    configurar Tomcat para recuperar la info de

    usuario, clave y rol utilizando una o ms

    implementaciones del reino.

  • 8/9/2019 Configuracin Tomcat2

    43/63

    Tomcat cuenta con un marco para los reinos y

    viene con varias implementaciones de reino

    muy utiles

    UserDatabaseRealm

    JDBCRealm

    JNDIRealm

    JAASREalm

  • 8/9/2019 Configuracin Tomcat2

    44/63

    los desarrolladores de Java pueden crear

    implementacones adicionales para conectarlas

    con su propio usuario y contrasea

    para determinar qu reinos utilizar, debemos

    introducir un elemento del reino en el fichero

    server.xml y especificar el reino que va a

    utilizar con el atributo className

  • 8/9/2019 Configuracin Tomcat2

    45/63

  • 8/9/2019 Configuracin Tomcat2

    46/63

    las configuraciones de reinos pueden invalidarsecon otras configuraciones.

    Si un reino est configurado para todos los Hosts

    al configurarlo en un conjunto de ficheros XMLms externo que los elementos del Host, y si unoo ms reinos se delcaranen el fichero server.xmlen uno de los elementos del contendor Host, laconfiguracin del segundo reino es la que se

    utiliza para el Host que lo contiene. Para el resto de Hosts se utilizan la configuracin

    del primero

  • 8/9/2019 Configuracin Tomcat2

    47/63

    ninguna parte del reino API de Tomcat se usa

    para aadir y quitar usuarios.

    no forma parte de la interfaz del reino

    para aadir y eliminar usuarios de un reino lo

    podemos hacer nosotros mismos.

  • 8/9/2019 Configuracin Tomcat2

    48/63

    UseDatabaseRealm

    este reino se carga en memoria desde un

    fichero esttico y se conserva hasta que

    Tomcat se cierra.

    la representacin de usuarios, contraseas y

    roles que Tomcat usa reside solamente en

    memoria.

    el archivo de permisos solo se elle una vez en elarranque

  • 8/9/2019 Configuracin Tomcat2

    49/63

    el archivo por defecto para asignar permisosen un reino UserDatabaseRealm es tomcat-users.xml y est en CATALINA_HOME/conf

    este fichero es clave para el uso de este reino contiene una lista de usuarios que tienen

    acceso a las aplicaciones Web

    es un fichero XML con elemento raz tomcat-users

    solo permite los elementos rol y usuario

  • 8/9/2019 Configuracin Tomcat2

    50/63

    cada elemento de rol tiene un solo atributo

    rolname

    cada elemento usuario tiene tres username, password, roles

  • 8/9/2019 Configuracin Tomcat2

    51/63

    rol es un grupo de usuarios para los que las

    aplicaciones Web definen un conjunto de

    capacidades.

    un ejemplo en Tomcat es la aplicacin

    Manager que permite activar, desactivar, y

    eliminar otras aplicaciones Web.

    para usar esta aplicacin debemos crear unusuario que pertenezca al rol manager.

  • 8/9/2019 Configuracin Tomcat2

    52/63

    cuando accedemos por primera vez a la

    aplicacin Manager, el navegador nos pide

    nombre y clave.

  • 8/9/2019 Configuracin Tomcat2

    53/63

    los reinos UserDatabaseRealm no estn

    pensado para trabajos de produccin serios

    pq la nica forma de actualizarlos es escribir

    un servlet a medida que acceda al reino a

    travs de JNDI

  • 8/9/2019 Configuracin Tomcat2

    54/63

    el servlet necesitara entonces modificar la

    base de datos del usuario en la memoria o

    modificar el fichero tomcat-users.xml

  • 8/9/2019 Configuracin Tomcat2

    55/63

    JDBCRealm

    este reino ofrece ms flexibilidad que el reino

    UserDatabaseRealm

    tb permite un acceso dinmico a la info.

    es un reino respaldado con una base de datos

    relacional

    todo se almacena en un base de datos

    el reino JDBCRealm accede a ellos cuando necesita

  • 8/9/2019 Configuracin Tomcat2

    56/63

    tenemos que especificar los parmetros de

    conexin JDBC como atributos para el reino en

    el fichero server.xml

    (versiones anteriores a 5.5 daba error al

    conectarse adecuadamente a la base d edatos.

    Este reino solo para versiones superiores a

    5.5.9)

  • 8/9/2019 Configuracin Tomcat2

    57/63

    JNDIRealm

    Si necesitamos que Tomcat recupere nombres

    de usuario, contraseas y roles de un

    directorio LDAP, usaremos este reino.

    JNDI es una implementacin muy flexible que

    permite autentificar usuarios en relacin al

    directorio LDAP

  • 8/9/2019 Configuracin Tomcat2

    58/63

    este reino puede buscar de forma recursiva unajerarquia de entradas LDAP hasta encontrar lainfo que necesita

    tb podemos configurarlo para que busque la infoen un lugar concreto del directorio

    podemos almacenar las contraseas como textocomn y utilizar el mtodo de autentificacin

    bsico, pero tb las podemos guardar de formacifrada y utilizar el modo de autentificacindigest

  • 8/9/2019 Configuracin Tomcat2

    59/63

    ejemplo de reino JNDIReaml

    configurado para usar un servidor LDAP (en ficheroserver.xml)

  • 8/9/2019 Configuracin Tomcat2

    60/63

    JAASReaml

    reino que autentifica los usuarios a travs de

    la Java Authentication and authorization

    Service (JAAS)

  • 8/9/2019 Configuracin Tomcat2

    61/63

    Seguridad gestionada por el contendor

    los mtodos de autentificacin gestionados

    por el contenedor controlar el modo en que se

    verifican los credenciales de usuario cuando

    se accede a un recursos protegido.

    Hay cuatro tipos de seguridad gestionada por

    el contenedor, compatibles con Tomcat

  • 8/9/2019 Configuracin Tomcat2

    62/63

    Autentificacin basica (basic). la contrasea delusuario se solicita mediante autentificacin HTTPcomo texto cifrado en base 64

    Autentificacin Digest: la contrasea del usuariose solicita con autentificacin HTTP como hashescriptogrficos

    Autentificacin Form: la constrasea se pide con

    formulario de una pagina Web Autentificacin Client-cert: el usuario se verifica

    mediante un certificado digital del lado de cliente

  • 8/9/2019 Configuracin Tomcat2

    63/63

    Autentificacin basic