Unidad 2
Upcoming SlideShare
Loading in...5
×
 

Unidad 2

on

  • 501 views

 

Statistics

Views

Total Views
501
Views on SlideShare
501
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Unidad 2 Unidad 2 Document Transcript

  • Unidad II Desarrollo de aplicaciones web2. Instalación del servidorConceptos básicos del servidor webUn servidor web es un programa que atiende y responde a las diversaspeticiones de los navegadores, proporcionándoles los recursosque solicitan mediante el protocolo HTTP o el protocolo HTTPS (laversión segura, cifrada y autenticada de HTTP). Un servidor web básicotiene un esquema de funcionamiento muy sencillo, ejecutandode forma infinita el bucle siguiente:1. Espera peticiones en el puerto TCP asignado (el estándar paraHTTP es el 80).2. Recibe una petición.3. Busca el recurso en la cadena de petición.4. Envía el recurso por la misma conexión por donde ha recibido lapetición.5. Vuelve al punto 2.Un servidor web que siguiese el esquema anterior cumpliría los requisitosbásicos de los servidores HTTP, aunque, eso sí, sólo podríaservir ficheros estáticos.A partir del esquema anterior se han diseñado y construido todos losprogramas servidores de HTTP que existen, variando sólo el tipo depeticiones (páginas estáticas, CGI, Servlets, etc.) que pueden atender,en función de que sean o no multi-proceso, multi-hilados, etc. A continuacióndetallaremos algunas de las características principales de losservidores web, que extienden, obviamente el esquema anterior.. Servicio de ficheros estáticosTodos los servidores web deben incluir, como mínimo, la capacidadpara servir los ficheros estáticos que se encuentren en alguna parteOC •XP04/90791/00021concreta del disco. Un requisito imprescindible es la capacidad deespecificar qué parte del disco se servirá. No resulta en absoluto recomendableque el servidor nos obligue a usar un directorio concreto,si bien puede tener uno por defecto.La mayoría de servidores web permiten, además, añadir otros directoriospara servir, especificando en qué punto del “sistema de ficheros”virtual del servidor se ubicarán.Algunos servidores web permiten, además, especificar directivas deseguridad (para qué direcciones, usuarios, etc., está visible un directorio,etc.), mientras que otros hacen posible especificar qué ficherosse considerarán como índice del directorio.. Seguridad y autenticaciónLa mayoría de los servidores web modernos nos permiten controlar
  • Unidad II Desarrollo de aplicaciones webdesde el programa servidor aquellos aspectos relacionados con laseguridad y la autenticación de los usuarios.EjemploPor ejemplo, podemos tener la siguiente situación:En este caso, el servidor debería traducir las siguientesdirecciones web de la siguiente manera:Directorio del disco Directorio web/home/apache/html/home/empresa/docs/home/jose/informe//docs/informe-2003URL Fichero de disco/index.html /home/apache/html/index.html/docs/manuales/producto.pdf /home/empresa/docs/manuales/producto.pdf/empresa/quienes.html /home/apache/html/empresa/quienes.html/informe-2003/index.html /home/jose/informe/index.htmlEl modo más simple de control es el proporcionado por el uso de ficheros.htaccess. Éste es un sistema de seguridad que proviene deuno de los primeros servidores web (del NCSA httpd), que consisteen poner un fichero de nombre .htaccess en cualquier directorio delcontenido web que se vaya a servir, indicando en este fichero quéusuarios, máquinas, etc., tienen acceso a los ficheros y subdirectoriosdel directorio donde está el fichero. Como el servidor de NCSA fueel servidor más usado durante mucho tiempo, la mayoría de servidoresmodernos permiten utilizar el fichero .htaccess respetando la sintaxisdel servidor de NCSA.Otros servidores permiten especificar reglas de servicio de directoriosy ficheros en la configuración del servidor web, indicando allí quéusuarios, máquinas, etc., pueden acceder al recurso indicado.Por lo que respecta a la autenticación (validación del nombre deusuario y contraseña proporcionados por el cliente), las prestacionesofrecidas por los diversos servidores web son de lo más variado.La mayoría permiten, como mínimo, proporcionar al servidorweb un fichero con nombres de usuario y contraseñas contra el quese pueda validar lo enviado por el cliente. De todos modos, es frecuenteque los servidores proporcionen pasarelas que permitan delegarlas tareas de autenticación y validación a otro software (porejemplo RADIUS, LDAP, etc.). Si usamos un sistema operativo comoLinux, que dispone de una infraestructura de autenticación comoPAM (pluggable authentication modules), podemos usar esta funcionalidadcomo modo de autenticación del servidor web, permitiéndonos
  • Unidad II Desarrollo de aplicaciones webasí usar los múltiples métodos disponibles en PAM paraautenticar contra diversos sistemas de seguridad.. El servidor ApacheApache es un servidor web de código libre robusto cuya implementaciónse realiza de forma colaborativa, con prestaciones y funcionalidadesequivalentes a las de los servidores comerciales. El proyectoestá dirigido y controlado por un grupo de voluntarios de todo elmundo que, usando Internet y la web para comunicarse, planificany desarrollan el servidor y la documentación relacionada.Estos voluntarios se conocen como el Apache Group. Además delApache Group, cientos de personas han contribuido al proyecto concódigo, ideas y documentación.. El nacimiento de ApacheEn febrero de 1995, el servidor web más popular de Internet era unservidor de dominio público desarrollado en el NCSA (National Center forSupercomputing Applications en la Universidad de Illinois). No obstante,al dejar Rob McCool (el principal desarrollador del servidor) laresto al motor de ejecución de Servlets (los Servlets y losJSP son mecanismos de desarrollo de aplicacionesweb), pero a pesar de incluir un servidor web, Apachees el servidor web usado por excelencia con Tomcat.Para ello disponemos de un módulo de Apache querealiza el enlace con Tomcat. Dicho módulo se denominamod_jk2.NCSA en 1994, la evolución de dicho programa había quedado prácticamentereducida a la nada. El desarrollo pasó a manos de los responsablesde sitios web, que progresivamente introdujeron mejoras ensus servidores. Un grupo de éstos, usando el correo electrónico comoherramienta básica de coordinación, se puso de acuerdo en poner encomún estas mejoras (en forma de “parches”, patches). Dos de estosdesarrolladores, Brian Behlendorf y Cliff Skolnick, pusieron en marchauna lista de correo, un espacio de información compartida y un servidoren California donde los desarrolladores principales pudiesen trabajar.A principios del año siguiente, ocho programadores formaronlo que sería el Grupo Apache.Éstos, usando el servidor NCSA 1.3 como base de trabajo, añadierontodas las correcciones de errores publicadas y las mejoras más valiosasque encontraron y probaron el resultado en sus propios servidores. Posteriormentepublicaron lo que sería la primera versión oficial del servidorApache (la 0.6.2, de Abril de 1995). Casualmente, en esas mismas fechas,NCSA reemprendió el desarrollo del servidor NCSA.En este momento el desarrollo de Apache siguió dos líneas paralelas.Por un lado, un grupo de los desarrolladores siguió trabajando sobre
  • Unidad II Desarrollo de aplicaciones webel Apache 0.6.2 para producir la serie 0.7, incorporando mejoras,etc. Un segundo grupo reescribió por completo el código, creandouna nueva arquitectura modular. En julio de 1995 se migraron a estanueva arquitectura las mejoras existentes para Apache 0.7, haciéndosepúblico como Apache 0.8.El día uno de diciembre de 1995, apareció Apache 1.0, que incluíadocumentación y muchas mejoras en forma de módulos incrustables.Poco después, Apache sobrepasó al servidor de NCSA como el másusado en Internet, posición que ha mantenido hasta nuestros días. En1999 los miembros del Grupo Apache fundaron la Apache SoftwareFoundation, que provee soporte legal y financiero al desarrollo del servidorApache y los proyectos laterales que han surgido de éste.. AOLServerEl servidor web AOLServer es el servidor web de código libre desarrolladopor AOL (América Online, el proveedor de Internet más importantedel mundo). AOL utiliza AOLServer como servidorprincipal de web para uno de los entornos web de mayor tráfico yuso de Internet. AOLServer es un servidor web multi-hebra, basadoen TCL, y con muchas facilidades de uso en entornos de gran escalay sitios web dinámicos. Cabe destacar que todos los dominios y servidoresweb de AOL, más de doscientos, que soportan miles de usuarios,millones de conexiones, etc., funcionan gracias a AOLServer.AOLServer tiene una amplia base de usuarios, gracias sobre todo asu integración con OpenACS, un sistema de gestión de contenidosmuy potente, de código libre, desarrollado inicialmente por una empresallamada ArsDigita y posteriormente liberado bajo licencia GPL.El binomio AOLServer-OpenACS constituye la infraestructura de proyectos webtan complejos y potentes como dotLRN (un campus virtualuniversitario de código libre).. Prácticas: instalación del servidor web Enunciado1. Descargad de Internet el código del servidor Apache e instaladloen un subdirectorio del directorio de nuestro usuario. Debemosinstalar la última versión disponible, además de asegurarnos dela correcta instalación de los siguientes módulos:• mod_access• mod_cgi2. Configurad el servidor instalado previamente para que respondaa las peticiones HTTP en el puerto 1234.3. Configurad el servidor web para que sirva los documentos que seencuentran en el subdirectorio web del directorio de trabajo de
  • Unidad II Desarrollo de aplicaciones webnuestro usuario.4. Configurad el servidor web para que ejecute programas CGI deldirectorio cgi del directorio de trabajo de nuestro usuario.. Resolución1. Una vez obtenido el código fuente de Apache procedemos a descomprimirlo:[carlesm@bofh m2]$ tar xvzf httpd-2.0.48.tar.gzhttpd-2.0.48/httpd-2.0.48/os/httpd-2.0.48/os/os2/httpd-2.0.48/os/os2/os.hhttpd-2.0.48/os/os2/core.mkhttpd-2.0.48/os/os2/config.m4httpd-2.0.48/os/os2/Makefile.inhttpd-2.0.48/os/os2/core_header.def....httpd-2.0.48/include/ap_release.hhttpd-2.0.48/include/.indent.prohttpd-2.0.48/include/util_cfgtree.hhttpd-2.0.48/acconfig.h[carlesm@bofh m2]$Una vez tengamos el código fuente del servidor en nuestro directorio,podemos configurarlo para compilarlo. En este punto, le indicaremosa Apache dónde queremos instalarlo. En nuestro casohemos escogido el subdirectorio apache de nuestro directorio detrabajo.