Tomcat

2,503 views
2,431 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,503
On SlideShare
0
From Embeds
0
Number of Embeds
82
Actions
Shares
0
Downloads
178
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tomcat

  1. 1. TOMCAT Miguel Ángel Nieto <miguelangel@irontec.com> Irontec – Internet y Sistemas sobre GNU/Linux
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×