Tomcat
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,940
On Slideshare
2,865
From Embeds
75
Number of Embeds
4

Actions

Shares
Downloads
169
Comments
0
Likes
1

Embeds 75

http://ayudatenerife.blogspot.com 53
http://www.slideshare.net 10
http://ayudatenerife.blogspot.com.es 9
http://ayudatenerife.blogspot.co.uk 3

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TOMCAT Miguel Ángel Nieto <miguelangel@irontec.com> Irontec – Internet y Sistemas sobre GNU/Linux
  • 2. Irontec – Tomcat / JBoss 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 2
  • 3. Irontec – Tomcat / JBoss 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 3
  • 4. Irontec – Tomcat / JBoss 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. 4
  • 5. Irontec – Tomcat / JBoss 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 5
  • 6. Irontec – Tomcat / JBoss 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 6
  • 7. Irontec – Tomcat / JBoss 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 7
  • 8. Irontec – Tomcat / JBoss 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 defined At least one of these environment variable is needed to run this program 8
  • 9. Irontec – Tomcat / JBoss 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 9
  • 10. Irontec – Tomcat / JBoss 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. 10
  • 11. Irontec – Tomcat / JBoss 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 11
  • 12. Irontec – Tomcat / JBoss 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! 12
  • 13. Irontec – Tomcat / JBoss 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 :) 13
  • 14. Irontec – Tomcat / JBoss 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/ 14
  • 15. Irontec – Tomcat / JBoss 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 15
  • 16. Irontec – Tomcat / JBoss 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 16
  • 17. Irontec – Tomcat / JBoss 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. 17
  • 18. Irontec – Tomcat / JBoss 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 18
  • 19. Irontec – Tomcat / JBoss Tomcat # Define 1 real worker using ajp13 worker.list=worker1 # Set properties for worker1 (ajp13) worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009 ● Resumiendo – El worker se llama “worker1” – Protocolo ajp versión 13 – Escucha en localhost – Puerto 8009 19
  • 20. Irontec – Tomcat / JBoss Tomcat ● Hay que decirle a apache donde se encuentra el fichero de configuración del worker. En httpd.conf JkWorkersFile /etc/apache2/workers.properties JkLogFile /var/log/mod_jk.log JkLogLevel info JkMount /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 20
  • 21. Irontec – Tomcat / JBoss 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 21
  • 22. Irontec – Tomcat / JBoss 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 22
  • 23. Irontec – Tomcat / JBoss 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 23
  • 24. Irontec – Tomcat / JBoss 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 24
  • 25. Irontec – Tomcat / JBoss 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/ 25
  • 26. Irontec – Tomcat / JBoss 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 26
  • 27. Irontec – Tomcat / JBoss 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 27
  • 28. Irontec – Tomcat / JBoss 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 28
  • 29. Irontec – Tomcat / JBoss 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 29
  • 30. Irontec – Tomcat / JBoss 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 30
  • 31. Irontec – Tomcat / JBoss 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) 31
  • 32. Irontec – Tomcat / JBoss Jboss ● Vamos a crear nuestra propia aplicación para Jboss :) http://www.novell.com/coolsolutions/feature/14912.html ● Como siempre, un hola mundo. 32
  • 33. Irontec – Tomcat / JBoss 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. 33