tomcat y jboss

33
TOMCAT Miguel Ángel Nieto <[email protected]> Irontec – Internet y Sistemas sobre GNU/Linux

Upload: miguel-angel-nieto-salazar

Post on 05-Dec-2014

25.372 views

Category:

Technology


8 download

DESCRIPTION

Curso básico de introducción a Tomcat y Jboss. Instalación, puesta en marcha, conector Apache...

TRANSCRIPT

Page 1: Tomcat y Jboss

TOMCAT

Miguel Ángel Nieto <[email protected]>Irontec – Internet y Sistemas sobre GNU/Linux

Page 2: Tomcat y Jboss

Irontec – Tomcat / JBoss

2

Tomcat

● Tomcat es otro proyecto de la Apache Foundation● Es un servidor Web con soporte de Servelts y JSPs

http://tomcat.apache.org/

● Suele utilizarse en conjunto con Apache Web Server

● Tomcat está escrito en Java, por lo que funciona en cualquier sistema operativo con máquina virtual

Page 3: Tomcat y Jboss

Irontec – Tomcat / JBoss

3

Servlets

● Una de las funcionalidades más comunes de un servlet es generar páginas web dinámicas

● Servlet deriva de applet. Un applet es un programa Java que se ejecuta en el lado cliente. Servlet, por su parte, en el lado servidor

● Nuestro servidor Tomcat, hará uso de los servlets que en el instalemos para generar páginas dinámicas

http://es.wikipedia.org/wiki/Java_Servlet

Page 4: Tomcat y Jboss

Irontec – Tomcat / JBoss

4

Servlets

● El ciclo de vida de un Servlet se divide en los siguiente puntos:

– El cliente solicita una petición a un servidor vía URL.– El servidor recibe la petición. – Si es la primera, se utiliza el motor de Servlets para

cargarlo y se llama al método init().– Si ya está iniciado, cualquier petición se convierte en un

nuevo hilo. Un Servlet puede manejar múltiples peticiones de clientes.

– Se llama al método service() para procesar la petición devolviendo el resultado al cliente.

– Cuando se apaga el motor de un Servlet se llama al método destroy(), que lo destruye y libera los recursos abiertos.

Page 5: Tomcat y Jboss

Irontec – Tomcat / JBoss

5

JSP

● JSP es JavaServer Pages● Es otra tecnología Java que permite generar

contenido dinámico web● Con JSP podemos hacer lo mismo que un Servlet y

viceversa● JSP es una página Web con etiquetas especiales y

código Java incrustado, mientras que un servlet es un programa Java puro que recibe peticiones y genera a partir de ellas una página web

Page 6: Tomcat y Jboss

Irontec – Tomcat / JBoss

6

Instalación

● Para instalar Tomcat es necesario dos elementos básicos

– Tomcat– ¡Java!

● Eso es todo :)● Desde la web oficial es posible descargarse distintas

versiones. En el momento de escribir este manual, la última versión es:

6.0.18

Page 7: Tomcat y Jboss

Irontec – Tomcat / JBoss

7

Instalación

● Descargamos la última versión y la descomprimimos● Es posible descargar el binario (precompilado) o el

código fuente● Para GNU/Linux descargamos la version binaria en

formato tar.gz● El fichero, una vez descomprimido, nos crea una

carpeta con todo lo necesario para funcionar● Con esto ya tenemos el primero de los dos

requisitos

Page 8: Tomcat y Jboss

Irontec – Tomcat / JBoss

8

Instalación

● Dentro de la carpeta bin vemos dos scripts● Startup arranca tomcat. Shutdown para tomcat● Si lo ejecutamos desde la consola podremos ver los

mensajes de error

Neither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least one of these environment variable is needed to run this program

Page 9: Tomcat y Jboss

Irontec – Tomcat / JBoss

9

Instalación

● Es necesario instalar Java Runtime● Podemos hacerlo bajando la última versión de la

web de Sun o desde el gestor de paquetes de GNU/Linux

● El nombre del paquete en cuestión es:

sun-java5-jre

Page 10: Tomcat y Jboss

Irontec – Tomcat / JBoss

10

Instalación

root@irontec-desktop:~# apt-get install sun-java5-jre

Leyendo lista de paquetes... Hecho

Creando árbol de dependencias

Leyendo la información de estado... Hecho

Se instalarán los siguientes paquetes extras:

gsfonts-x11 java-common odbcinst1debian1 sun-java5-bin unixodbc xutils-dev

Paquetes sugeridos:

equivs sun-java5-plugin ia32-sun-java5-plugin sun-java5-fonts libmyodbc odbc-postgresql libct1

Se instalarán los siguientes paquetes NUEVOS:

gsfonts-x11 java-common odbcinst1debian1 sun-java5-bin sun-java5-jre unixodbc xutils-dev

0 actualizados, 7 se instalarán, 0 para eliminar y 0 no actualizados.

Page 11: Tomcat y Jboss

Irontec – Tomcat / JBoss

11

Instalación

● Una vez instalado ya tenemos JRE y podemos arrancar Tomcat

irontec@irontec-desktop:~/apache-tomcat-6.0.18/bin$ ./startup.sh

Using CATALINA_BASE: /home/irontec/apache-tomcat-6.0.18

Using CATALINA_HOME: /home/irontec/apache-tomcat-6.0.18

Using CATALINA_TMPDIR: /home/irontec/apache-tomcat-6.0.18/temp

Using JRE_HOME: /usr

Page 12: Tomcat y Jboss

Irontec – Tomcat / JBoss

12

Tomcat

● Tomcat por defecto estucha en los puertos:– 8080 (puerto por defecto de Tomcat)– 8005 (puerto para apagar Tomcat)– 8009 (conector AJP)

● Si entramos en http://direccion.ip:8080 podremos ver la página principal de Apache Tomcat :)

● ¡Ya tenemos Tomcat instalado!

Page 13: Tomcat y Jboss

Irontec – Tomcat / JBoss

13

Tomcat

● Los ficheros de Tomcat se encuentran en la carpeta conf

● Cambiad el puerto por defecto de 8080 a 81● Intentad entrar a la gestión del Manager ¿Se

puede? Solucionadlo :)

Page 14: Tomcat y Jboss

Irontec – Tomcat / JBoss

14

Tomcat

● Desde la gestión del manager es posible desplegar nuevos Servlets

● También es posible parar, arrancar los servlets implementados

● Los podemos descargar en nuestro ordenador personal y desplegarlos al servidor desde el navegador, sin necesidad de toca ni un solo fichero de configuración

http://tomcat.apache.org/tomcat-6.0-doc/appdev/sample/

Page 15: Tomcat y Jboss

Irontec – Tomcat / JBoss

15

Tomcat

● El conector de Apache con Tomcat nos permite unir las dos aplicaciones

● Podemos instalarlo desde el gestor de paquetes

libapache2-mod-jk

● Una vez instalado será necesario habilitar el módulo

Page 16: Tomcat y Jboss

Irontec – Tomcat / JBoss

16

Tomcat

● Tomcat puede actuar por si solo como servidor web

● Solemos unir Apache y Tomcat por temas de rendimiento. Apache es más rapido sirviendo páginas estáticas que Tomcat. La idea suele ser dejar a Apache servir las estáticas y Tomcat las dinámicas

● La union se hace mediante el módulo instalado anteriorment

Page 17: Tomcat y Jboss

Irontec – Tomcat / JBoss

17

Tomcat

● Otras razones para usar Apache y Tomcat:– Apache puede actuar como frontend para distintas

instancias de Tomcat. Si un Tomcat se cae, Apache lo ignora y va a los siguientes

– Apache puede actuar de proxy intermedio, de forma que los usuarios solo tienen acceso a el y no acceso directo a Tomcat

– Apache soporta facilmente CGIs, PHP, perl, etc.

– Apache dispone de muchos más modulos, como mod_authz, mod_rewrite, etc.

Page 18: Tomcat y Jboss

Irontec – Tomcat / JBoss

18

Tomcat

● Chuleta rápida:http://tomcat.apache.org/connectors-doc/generic_howto/quick.html

● Es necesario crear un fichero workers.properties● Un Worker es una instancia de Tomcat que está

esperando para ejecutar un servlet● En el fichero debemos definir las instancias a las

que Apache tendrá acceso

Page 19: Tomcat y Jboss

Irontec – Tomcat / JBoss

19

Tomcat

# Define 1 real worker using ajp13worker.list=worker1# Set properties for worker1 (ajp13)worker.worker1.type=ajp13worker.worker1.host=localhostworker.worker1.port=8009

● Resumiendo– El worker se llama “worker1”– Protocolo ajp versión 13– Escucha en localhost– Puerto 8009

Page 20: Tomcat y Jboss

Irontec – Tomcat / JBoss

20

Tomcat

● Hay que decirle a apache donde se encuentra el fichero de configuración del worker. En httpd.conf

JkWorkersFile /etc/apache2/workers.propertiesJkLogFile /var/log/mod_jk.logJkLogLevel infoJkMount /examples/ worker1

● Resumiendo:– El workerfile está en esa ruta– Los logs van a /var/log– Cada vez que accedamos a /examples/ lo redirigrá al

tomcat worker1

Page 21: Tomcat y Jboss

Irontec – Tomcat / JBoss

21

Tomcat

● JKMount se puede aplicar de forma global, pero este no se replica en los VirtualHost que tenemos configurados.

● Apache suele traer un VirtualHost por defecto. Para que copie el JPMount global se le debe indicar la directiva

JkMountCopy on

● Se deberá poner en todos aquellos VirtualHost que deseamos tener el JkMount global

● O si no, JkMountCopy all :D

Page 22: Tomcat y Jboss

Irontec – Tomcat / JBoss

22

Tomcat

http://tomcat.apache.org/connectors-doc/generic_howto/workers.html

http://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html

http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html

http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html

Page 23: Tomcat y Jboss

Irontec – Tomcat / JBoss

23

Jboss

● Jboss es el servidor de aplicaciones de Red Hat, completamente implementado en Java. EJB/JMS

http://www.jboss.org/

● Es completamente libre

● Multiplataforma, allí donde tengamos máquina virtual (y recursos suficientes) podremos tener Jboss

Page 24: Tomcat y Jboss

Irontec – Tomcat / JBoss

24

Jboss

● A diferencia de Tomcat, que solo es un contenedor de Servlets, Jboss es un servidor de aplicaciones completo.

● Soporta la API de desarrollo de aplicaciones empresariales EJB

http://es.wikipedia.org/wiki/EJB

● Soporta JMS (servicio de mensajería Java)http://es.wikipedia.org/wiki/JMS

Page 25: Tomcat y Jboss

Irontec – Tomcat / JBoss

25

Jboss

● Jboss escucha también en el puerto 8080, por lo que habrá que tener cuidado si tenemos un proxy, Oracle o Tomcat instalados

● La instalación es igual que Tomcat, descargar, descomprimir y usar

● Será necesario instalar el JDK de Sun

http://www.jboss.org/jbossas/downloads/

Page 26: Tomcat y Jboss

Irontec – Tomcat / JBoss

26

Jboss

● Jboss incluye Tomcat 5.5, por lo que el puerto 8009 estará abierto

● Se recomienda no instalar Jboss y Tomcat separado, ya que estaremos instalando dos versiones de Tomcat que se pelearán por los mismos puertos

● Para parar y arrancar Jboss tendremos los scripts run.sh y shutdown.sh

Page 27: Tomcat y Jboss

Irontec – Tomcat / JBoss

27

Jboss

● Por defecto Jboss solamente escucha en la interfaz loopback 127.0.0.1

● Si lo que deseamos es que el servicio sea accesible desde fuera, será necesario arrancarlo escuchando en cualquier interfaz

● ./run -b 0.0.0.0

● No suele ser necesario, ya que jboss o Tomcat suelen ser accedidos desde Apache. La comunicación es a través de 127.0.0.1

Page 28: Tomcat y Jboss

Irontec – Tomcat / JBoss

28

Jboss

● Jboss es completamente modular● Esta funcionalidad se la ofrece la API JMX (Java

Management Extension) sobre la cual está contruida● Permite gestionar y monitorizar una gran variedad

de componentes● Jboss incluye una consola web que permite

interactuar con todos los módulos a golpe de ratón

http://es.wikipedia.org/wiki/JMX

Page 29: Tomcat y Jboss

Irontec – Tomcat / JBoss

29

Jboss

● Dentro de Jboss tenemos una serie de carpetas:– Bin (scripts para controlar Jboos)– Client (librerias usadas por el cliente remoto)– Docs (documentación)– Lib (librerias base de Jboss)– Server (servicios hospedados)

● De las carpetas mostradas anteriormente, las más importante serán Server y Bin

Page 30: Tomcat y Jboss

Irontec – Tomcat / JBoss

30

Jboss

● Dentro de server tenemos distintas configuraciones– Minimal (lo mínimo para funcionar, como logging y

deployments)– Default (la configuración por defecto, si no se especifica

otra. Lo mismo que minima, con opciones de seguridad, servicios de transacción, etc.)

– Web (lo necesario para servir aplicaciones web)– All (todo, todo y todo)

● Si se desea crear una configuración personaliza, se pueden copiar una de esas carpetas con otro nombre y comenzar a personalizarla

● Para indicar que server arrancar:run.sh -c miconfiguración

Page 31: Tomcat y Jboss

Irontec – Tomcat / JBoss

31

Jboss

● Dentro de cada configuración de servidor tenemos las siguientes carpetas:

– Conf (ficheros de configuración)– Data (donde jboss guarda datos– Deploy (aquí ponemos nuestros componentes o

aplicaciones. Se leen dinámicamente)– Lib (librerias requeridas para esta configuración)– Log (logs de esta configuración)– Tmp (almacenamiento de ficheros temporales)– Work (para cacheo JSP)

Page 32: Tomcat y Jboss

Irontec – Tomcat / JBoss

32

Jboss

● Vamos a crear nuestra propia aplicación para Jboss :)

http://www.novell.com/coolsolutions/feature/14912.html

● Como siempre, un hola mundo.

Page 33: Tomcat y Jboss

Irontec – Tomcat / JBoss

33

Jboss

● Como Jboss usa por debajo Tomcat 5.5 en el puerto 8009, la configuración del conector es exactamente igual

● Configurad el HelloWorld para que sea accesible mediante Apache con el módulo JK.