tomcat y jboss
Post on 05-Dec-2014
25.379 Views
Preview:
DESCRIPTION
TRANSCRIPT
TOMCAT
Miguel Ángel Nieto <miguelangel@irontec.com>Irontec – Internet y Sistemas sobre GNU/Linux
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
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
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.
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
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
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
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
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
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.
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
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!
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 :)
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/
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
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
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.
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
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
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
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
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
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
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
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/
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
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
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
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
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
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)
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.
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.
top related