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
Top Related