arquitectura_dela_web

October 23, 2017 | Author: Edward Vega Gavidia | Category: Apache Http Server, Technology, World Wide Web, Web Server, Internet
Share Embed Donate


Short Description

Download arquitectura_dela_web...

Description

Instituto Tecnológico de Mexicali Optimización de la Web del I.T.M, Aplicación Servidor Web Opción X Memoria de Residencia Profesional Que Para Obtener el Título de: Ingeniero en Sistemas Computacionales Presenta: Reyes Lomeli Walter Ivan Control: 02490334 Mexicali B.C. Marzo 2007

I

Índice general 1. I NTRODUCCIÓN 2.

ARQUITECTURA DE LA

1 W EB

3

2.1. E STRUCTURA DE LA WEB . . . . . . . . . . . . 2.1.1. BASES ARQUITECTURALES DE LA W EB: 2.2. I DENTIFICACIÓN . . . . . . . . . . . . . . . . . 2.2.1. B ENEFICIOS DEL URI . . . . . . . . . . 2.2.2. R ELACIONES URI/R ECURSO . . . . . . . . . .

. . . .

. . . .

. . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

3 4 4 4 4

C OLISIÓN DE URI . . . . . . A SIGNACIÓN DE URI . . . . P OSESIÓN DE URI . . . . . . E SQUEMAS DE ASIGNACIÓN

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

5 5 5 6

2.2.7. 2.2.8. 2.2.9. 2.2.10. 2.2.11.

I DENTIFICACIÓN INDIRECTA . . . . . . . C OMPARACIÓN DE URI . . . . . . . . . . A LIAS DE URI . . . . . . . . . . . . . . . R EUTILIZACIÓN DE LA REPRESENTACIÓN E SQUEMAS DE URI . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

6 6 6 7 7

2.2.12. R EGISTRO D EL E SQUEMA DE URI . . . . . . . . . 2.3. I NTERACCIÓN . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1. I NTERACCIONES Y RESPONSABILIDAD INSEGURAS 2.3.2. P ERSISTENCIA DE URI . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

7 7 8 8

. . . . . . . . . . . . . . . . . . . . . .

8

II

. . . .

. . . . .

2.2.3. 2.2.4. 2.2.5. 2.2.6.

2.4. F ORMATOS D E DATOS

. . . .

. . . . .

2.4.1. T IPOS DE F ORMATOS DE DATOS . . . . . . . . 2.4.2. HTTP . . . . . . . . . . . . . . . . . . . . . . . 2.4.3. H IPERTEXTO . . . . . . . . . . . . . . . . . . . 2.4.3.1. C ARACTERÍSTICAS DEL HIPERTEXTO 2.4.4. F ORMATO XML- BASADO . . . . . . . . . . .

. . . . .

9 9 9 10 10

2.4.5. NAMESPACES DE XML . . . . . . . . . . . . . . . . . . 2.4.6. QNAMES EN XML . . . . . . . . . . . . . . . . . . . . . 2.5. E SPECIFICACIONES O RTOGONAL . . . . . . . . . . . . . . . . .

11 11 11

3. L A W EB COMO ENTIDAD DE I NTERNET 3.1. ¿Q UÉ ES I NTERNET ? . . . . . . . . . 3.2. E L W ORLD W IDE W EB . . . . . . . 3.3. ¿ C ÓMO FUNCIONA EL WWW? . . . 3.4. T ECNOLOGÍAS CLIENTE / SERVIDOR .

. . . . .

. . . . .

. . . . .

. . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

13 13 14 15 15

3.5. HISTORIA DE LA W ORLD W IDE W EB . 3.6. E XPLORADORES W EB . . . . . . . . . 3.7. M OTORES DE BÚSQUEDA EN EL W EB 3.8. E STRUCTURA DE LA W EB . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

16 17 18 18

3.9. A RQUITECTURA W EB . . . . . . . . . . . . . . 3.10. V ENTAJAS DE LA W EB . . . . . . . . . . . . . . 3.11. ¿Q UÉ ES LA ACCESIBILIDAD W EB ? . . . . . . 3.11.1. V ENTAJAS DE LA ACCESIBILIDAD WEB 3.12. ¿Q UÉ ES LA W EB S EMÁNTICA ? . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

19 19 19 19 20

3.12.1. ¿PARA QUÉ SIRVE ? . . . . . . . . . . . . . . . . . . . . 3.12.2. ¿C OMO FUNCIONA ? . . . . . . . . . . . . . . . . . . . .

20 20

4. Apache

21

4.1. D EFINICIÓN . . . . . . . . . . . . . . 4.1.1. ¿C OMO FUNCIONA A PACHE ? 4.2. H ISTORIA DE APACHE . . . . . . . . 4.3. C ARACTERÍSTICAS Y VENTAJAS DEL III

. . . . . . . . . . . . . . . A PACHE

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

21 22 22 23

4.4. A PACHE 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5. P RINCIPALES M EJORAS . . . . . . . . . . . . . . . . . . . . . . 4.5.1. H EBRADO EN U NIX . . . . . . . . . . . . . . . . . . . . 4.5.2. N UEVO SISTEMA DE CONFIGURACIÓN Y COMPILACIÓN 4.5.3. S OPORTE MULTIPROTOCOLO . . . . . . . . . . . . . . . 4.5.4. 4.5.5. 4.5.6. 4.5.7.

S OPORTE PARA PLATAFORMAS QUE NO SON U NIX N UEVA INTERFAZ DE PROGRAMACIÓN (API) . . . F ILTROS . . . . . . . . . . . . . . . . . . . . . . . M ENSAJES DE ERROR . . . . . . . . . . . . . . . .

23 24 24 25 25

. . . .

. . . .

. . . .

25 25 26 26

. . . .

. . . .

. . . .

26 28 28 28

5. A RCHIVOS DE C ONFIGURACIÓN 5.1. M ÓDULOS DE M ULTI P ROCESAMIENTO . . . . . . . . . . . . . . 5.2. A RCHIVOS DEL SERVIDOR WEB A PACHE . . . . . . . . . . . . 5.2.1. A RCHIVO PRINCIPAL DE CONFIGURACIÓN . . . . . . .

30 30 30 31

4.5.8. M EJORAS EN LOS MÓDULOS . . . 4.6. A NTES DE INSTALAR EL S ERVIDOR W EB 4.7. S ERVIDOR W EB . . . . . . . . . . . . . . 4.7.1. I NSTALAR S ERVIDOR A PACHE . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

5.2.1.1. 5.2.1.2.

S ECCIÓN DE CONFIGURACIÓN GLOBAL . . . . S ECCIÓN DE CONFIGURACIÓN DEL SERVIDOR PRINCIPAL . . . . . . . . . . . . . . . . . . . . 5.2.2. V IRTUAL H OSTS . . . . . . . . . . . . . . . . . . . . . .

32

6. AUTENTICACIÓN , AUTORIZACIÓN Y C ONTROL DE ACCESO 6.1. AUTENTICACIÓN Y AUTORIZACIÓN . . . . . . . . . . . . . . . . 6.2. ACCESO R ESTRINGIDO POR U SUARIO Y PASSWORD . . . . . . 6.3. L OS P RERREQUISITOS . . . . . . . . . . . . . . . . . . . . . . .

49 49 50 51

6.4. P UESTA EN FUNCIONAMIENTO . . . . . . . . . . . . . . . . . . 6.5. ACCESOS M ULTIPLES . . . . . . . . . . . . . . . . . . . . . . . .

51 53

IV

36 45

7. S ERVIDOR W EB EN EL I.T.M. 7.1. D EBIAN . . . . . . . . . . . . . . . . . . 7.2. A PACHE . . . . . . . . . . . . . . . . . . 7.3. PHP . . . . . . . . . . . . . . . . . . . . 7.4. H OST VIRTUAL BASADO EN NOMBRES: .

. . . .

54 54 55 56 56

7.5. SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6. P ROPUESTA DE UN NUEVA PAGINA W EB . . . . . . . . . . . . .

57 58

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

8. CONCLUSIONES y T RABAJO F UTURO 8.1. S ERVIDOR W EB . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2. P ERO EL TRABAJO NO A CONCLUIDO AQUÍ . . . . . . .

V

61 61 61

Índice de figuras 2.1. Alias de URI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Estilos secuencial, jerárquico y el hipermedio. . . . . . . . . . . .

5 10

3.1. Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Cliente/Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . .

14 16

4.1. Servidor Apache. . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Gráfica de Servidores . . . . . . . . . . . . . . . . . . . . . . . .

21 24

7.1. Propuesta pagina Web . . . . . . . . . . . . . . . . . . . . . . . .

60

VI

Capítulo 1 I NTRODUCCIÓN El Instituto tecnológico de Mexicali imparte Educación Superior Tecnológica bajo tres principios: Calidad en la Educación, Eficiencia en su Administración y Pertinencia en sus egresados. El I.T.M cuenta con una red clase “C” que permite tener una dirección IP real para navegar sin restricciones por Internet. Esta es necesaria para los servidores (Web, Mail, DNS, etc.) que ocupan una dirección real para funcionar. En este proyecto presento un análisis de requerimientos y ventajas al proponer el servidor Web que debe ser instalado en este centro educativo, así como un nuevo diseño de la pagina Web, dando a conocer los beneficios que el proyecto tendrá una vez terminado. He introducido un apartado dedicado a la descripción de los archivos de configuración del servidor Apache 2.0 que sin duda será el más interesante en este documento. El servidor Web Apache en Diciembre de 1997 tenía una cuota de mercado cercana al 45 % y en la actualidad ya está por encima del 60 % (según los estudios de Netcraft). Cuando pensamos en un servidor Web vienen a nuestra mente páginas Web. El sistema con el que está construido el Web se llama hipertexto y son muy fáciles de utilizar y encontrar lo que buscamos, dando click vamos accediendo a la información que nos interesa. La Web no solo presenta textos y enlaces, sino que 1

Instituto Tecnológico de Mexicali

2

también puede ofrecernos imágenes, vídeos, sonido y todo tipo de presentaciones. Una página Web es un documento HTML/XHTML al cual se puede tener acceso mediante el protocolo HTTP de Internet. Un sitio Web está dedicado a algún tema particular, en nuestro caso el propósito de diseñar un nuevo sitio Web para el Instituto Tecnológico de Mexicali, es simplemente para proyectar una mejor imagen al centro educativo y ofrecer un mejor servicio tanto a futuros alumnos como a los alumnos . Un sitio Web está alojado en un sistema de ordenador conocido como servidor Web, también llamado servidor HTTP, Apache es el programa más usado como servidor Web.

Capítulo 2 ARQUITECTURA DE LA 2.1.

W EB

E STRUCTURA DE LA WEB

La W ORLD W IDE W EB (Telaraña Mundial), WWW o también conocido como Web, por medio de Internet permite el acceso a todo un mundo de información. La navegación en el Web se realiza por medio de un software llamado Browser o Explorador. En la WWW los elementos, referidos como recursos, estan identificados por identificadores Uniformes de Recurso - (Uniform Resource Identifiers (URI)). Para entender mejor cual es la función del navegador al introducir un URI lo explicare de la siguiente manera: 1. El navegador reconoce que se trata de un URL al momento de escribirlo. 2. Recupera la información mediante el esquema URI "http". 3. La autoridad responsable presenta la información en respuesta a la solicitud de recuperación. 4. El navegador interpreta la respuesta y realiza acciones de recuperación.

3

Instituto Tecnológico de Mexicali

2.1.1.

4

BASES ARQUITECTURALES DE LA W EB:

I DENTIFICACIÓN . Los URIs identifican a los recursos. I NTERACCIÓN . Los agentes Web utilizan protocolos para comunicarse mediante el intercambio de mensajes. Al introducir un URI o seleccionando un enlace de hipertexto, el navegador envía una petición al servidor, a través del puerto 80 TCP/IP, y el servidor devuelve un mensaje que contiene lo que él determina que es una representación del recurso (Respuesta a lo solicitado). F ORMATOS . La elección del protocolo de interacción pone límites a los formatos de representación de la información y metainformación que puede transmitirse.

2.2.

I DENTIFICACIÓN

Un objetivo de la Web, es construir una comunidad global en la cual pueda compartir información y para conseguir este objetivo, la Web hace uso de un único sistema global de identificación: el URI.

2.2.1.

B ENEFICIOS DEL URI

El Identificador Uniforme de Recurso (Uniform Resource Identifier)[2], es utilizado desde la creación de la Web. Existen beneficios que incluyen la vinculación, utilización como marcador (o bookmark), cacheo, e indexación por los motores de búsqueda, y existen costos substanciales para la creación de un nuevo sistema de identificación que tiene las mismas propiedades que los URIs.

2.2.2.

R ELACIONES URI/R ECURSO

Por su diseño un URI identifica un recurso. El término "recurso" se utiliza para cualquier cosa que pueda ser identificada por un URI. Es común decir que páginas Web, imágenes, catálogos de productos, etc. son “recursos”.

Instituto Tecnológico de Mexicali

2.2.3.

5

C OLISIÓN DE URI

Por diseño, un URI identifica a un recurso. Cuando se usa el mismo URI para identificar recursos diferentes provoca una colisión de URI.

2.2.4.

A SIGNACIÓN DE URI

Una asignación de URI es el proceso con el cual se asocia el URI con el recurso. Los URIs se encuentran divididos en esquemas los cuales van a definir la forma en que los identificadores son asociados con los recursos. De la misma manera en que nosotros podemos referirnos a una persona con diferentes nombres (por su nombre completo, sólo su nombre propio, un apodo, un apelativo cariñoso, defecto, etc), la arquitectura de la Web permite asociar más de un URI a un recurso. Los URIs que identifican al mismo recurso se llaman alias.

Figura 2.1: Alias de URI.

2.2.5.

P OSESIÓN DE URI

La relación que existe entre el URI y la entidad social (como una persona, organización, o especificación), es a lo que se le conoce como posición de URI.

Instituto Tecnológico de Mexicali

6

La posesión de URI se delega desde el esquema de registro de URI de IANA [1].

2.2.6.

E SQUEMAS DE ASIGNACIÓN

Algunos esquemas tienen sus propias técnicas para evitar la colisión. Por ejemplo, el esquema de datos URI [9] especifica que el recurso solo tendrá una posible representación. Los datos de representación forman el URI que identifica ese recurso.

2.2.7.

I DENTIFICACIÓN INDIRECTA

El problema del URI "mailto:[email protected]" es que puede identificar tanto a un correo de Internet como a Juan, la persona, causando una colisión de URI. Es posible usar el URI para identificar indirectamente a Juan. Por ejemplo si se tiene [email protected] como la dirección de correo electrónico de Juan, una forma de no presentar una colisión es usando el URI como clave en su base de datos para ese correo.

2.2.8.

C OMPARACIÓN DE URI

Los URIs que son idénticos, carácter a carácter, se van a referir al mismo recurso. La Arquitectura de la Web permite asociar múltiples URIs con un recurso, URIs que no son idénticos, carácter a carácter, también pueden referirse al mismo recurso.

2.2.9.

A LIAS DE URI

Los alias perjudican cuando dividen la Web. El problema ocurre cuando la mitad apunta a un URI para un recurso, y la otra mitad apunta a otro URI, osea, tenemos diferentes URI para el mismo recurso, entonces la web se divide. El propietario del URI debe utilizar las técnicas de protocolo para redireccionar el servidor y relacionar los dos recursos. La comunidad se beneficia cuando

Instituto Tecnológico de Mexicali

7

el propietario del URI soporta la redirección de un URI con alias a la correspondiente URI [11].

2.2.10.

R EUTILIZACIÓN DE LA REPRESENTACIÓN

Sólo cuando se usa más de un URI para identificar al mismo recurso se usa el alias. Pero en ocasiones encontraras diferentes recursos que tienen la misma representación y esto no significa que los URIs sean alias.

2.2.11.

E SQUEMAS DE URI

Cada esquema de URI explica cómo los identificadores se van a asignar y asociar con un recurso. La sintaxis de URI es un sistema de nombramiento federado en donde la especificación de cada esquema puede restringir la sintaxis y la semántica de identificadores dentro de ese esquema. Introducir un nuevo esquema de URI requiere el desarrollo y el despliegue no solo del software del cliente en el esquema, si no también de agentes auxiliares como las entradas, los proxies, y escondrijos [12].

2.2.12.

R EGISTRO D EL E SQUEMA DE URI

El Internet Assigned Numbers Authority (IANA) [1] mantiene un registro de mappings entre los nombres del esquema de URI y las especificaciones del esquema.

2.3.

I NTERACCIÓN

La comunicación entre los agentes implica URIs, mensajes, y datos. Los protocolos de la web intercambian mensajes, un mensaje puede contener datos como también metadata sobre un recurso, los datos del mensaje, y el mensaje mismo. El

Instituto Tecnológico de Mexicali

8

servidor envía un mensaje de respuesta al browser el cual consiste en varios encabezados. El browser lee los encabezados, aprende del "Contenido-Tipo" campo que el tipo de medios del Internet de la representación es "image/jpeg", lee la secuencia de los octetos, y arroja la imagen.

2.3.1.

I NTERACCIONES Y RESPONSABILIDAD INSEGURAS

Las peticiones y los resultados de la transacción son recursos valiosos, y por lo tanto, es necesario hacerles referencia con un URI persistente: Para las peticiones de la transacción, los agentes del usuario proporcionan un interfaz para las transacciones de manejo donde el agente del usuario ha incurrido en una obligación a nombre del usuario. Para los resultados de la transacción, el HTTP permite que los abastecedores de la representación asocien un URI a los resultados de una petición del POSTE del HTTP [11].

2.3.2.

P ERSISTENCIA DE URI

La persistencia del término URI significa que una vez asociado un URI a un recurso, el URI siempre se va a referir a ese recurso. La opción de un esquema de URI no nos da ninguna garantía que esos URIs serán o no persistentes.

2.4.

F ORMATOS D E DATOS

El llegar a un acuerdo en la interpretación correcta de los datos de la representación es una de las especificaciones del formato de datos. Para que un formato de datos sea interoperable entre dos partes, es necesario que ambas partes contengan una misma sintaxis y semántica. El primer formato de datos usado en el Web era HTML.

Instituto Tecnológico de Mexicali

2.4.1.

9

T IPOS DE F ORMATOS DE DATOS

En los formatos de datos binarios, los datos son codificados para el uso directo por los procesadores de la computadora. Son consumidos más rápidamente por los agentes cuando son cargados en memoria. En los formatos de datos textuales, los datos se especifican en una codificación como una secuencia de caracteres, tienen la ventaja que pueden ser leídos directamente por los seres humanos.

2.4.2.

HTTP

El protocolo de transferencia de hipertexto ( HyperText Transfer Protocol) es el usado en cada transacción de la Web. El hipertexto es el contenido de las páginas web. Propiedades de HTTP : Direccionamiento. Utiliza el Universal Resource Identifier (URI) para localizar sitios. Cliente-Servidor. Trabaja en base a solicitud/respuesta. La comunicación se realiza sobre TCP/IP. El puerto por defecto es el 80. Es un protocolo sin conexión y sin estado. Después de que el servidor ha respondido la petición del cliente, se rompe la conexión entre ambos. Está abierto a nuevos tipos de datos. HTTP utiliza tipos MIME (Multipart Internet Mail Extensión) para determinar el tipo de los datos que transporta.

2.4.3.

H IPERTEXTO

El hipertexto maneja información, en el cual los datos se almacenan en una red de nodos conectados por enlaces.

Instituto Tecnológico de Mexicali

10

En un libro, la lectura se realiza en forma secuencial desde el principio hasta el final, la ventaja con el hipertexto es que la lectura puede realizarse en forma no secuencial, de esta manera los usuarios podrán buscar información y ver los contenidos en el orden que ellos deseen o simplemente por tema de interés. En la figura 2.1, se representan el estilo secuencial, el estilo jerárquico, y el hipermedio.

Figura 2.2: Estilos secuencial, jerárquico y el hipermedio.

2.4.3.1.

C ARACTERÍSTICAS DEL HIPERTEXTO

Un sistema hipertexto debe: Proporcionar y presentar información poco o nada estructurada, no ajustada a esquemas tradicionales y rígidos como es el caso de las bases de datos. Imitar el funcionamiento de la mente humana, utilizando modelos cognitivos, para que el usuario no realice grandes esfuerzos para obtener la información que necesita. La información se encuentra compartida ya que puede ser accesada por varios usuarios.

2.4.4.

F ORMATO XML- BASADO

XML define los formatos de datos textuales para describir los objetos de los datos que son jerárquicos y que se procesan en una secuencia elegida, un formato

Instituto Tecnológico de Mexicali

11

audio o vídeo, por ejemplo, es poco probable ser satisfecho bien a la expresión en XML.

2.4.5.

N AMESPACES DE XML

El propósito de un namespace de XML es permitir el despliegue de los vocabularios de XML en un ambiente global y reducir el riesgo de las colisiones conocidas en un documento dado cuando se combinan los vocabularios [10]. Otra ventaja de usar URIs para construir namespaces de XML es que el namespace URI se puede utilizar para identificar un recurso de la información que contenga la información útil, machine-usable y/o humano-usable.

2.4.6.

QN AMES EN XML

QName es una expresión compacta de nombres cualificados en documentos de XML. Un nombre cualificado es un par que consiste en un URI, que nombra un namespace, y un nombre local dentro de ese namespace. "Namespaces en XML" usa los QNames como nombres para los elementos y las cualidades de XML [10].

2.5.

E SPECIFICACIONES O RTOGONAL

La identificación, la interacción, y la representación son conceptos ortogonal, esto quiere decir que pueden desarrollarse independientemente: Los recursos se identifican con URIs. Un URI puede ser publicado sin ninguna representación del recurso. Una sintaxis de URI permite que los agentes funcionen sin saber los esquemas de URI.

Instituto Tecnológico de Mexicali

12

Cuando dos especificaciones son ortogonal, una puede cambiar sin necesitar cambios al otro incluso si se tiene dependencias. Por ejemplo, aunque la especificación del HTTP depende de la especificación de URI, los dos pueden trabajar de forma independiente.

Capítulo 3 L A W EB COMO ENTIDAD DE I NTERNET 3.1.

¿Q UÉ ES I NTERNET ?

Dicho de una manera fácil, se trata de un conjunto de computadoras localizadas en todo el mundo las cuales están conectadas entre sí para intercambiar información. Otra forma de entender mejor Internet es pensando en ella como una gran red mundial de computadoras formada por pequeñas redes conectadas unas con otras intercambiando información entre ellas. Internet es una red libre ya que cualquier persona puede tener acceso a ella desde cualquier lugar. El tener acceso a información que se encuentra repartida por todo el mundo como si se encontrara en una sola computadora es una de las características que hacen de Internet una potente herramienta para el intercambio de información y para la comunicación, por ejemplo, un documento de una computadora en México, puede tener referencias a otro documento en Japón. En la figura figura 3.1 se muestra un pequeño ejemplo de como varias pequeñas redes se encuentran conectadas entre si intercambiando información.

13

Instituto Tecnológico de Mexicali

14

Figura 3.1: Internet

3.2.

E L W ORLD W IDE W EB

El Web es un servicio de Internet. Mucha gente piensa que Internet y WWW es lo mismo pero en realidad el Web es una entidad que existe dentro de Internet. El Web contiene una enorme cantidad de documentos los cuales son mostrados de distintas formas, desde documentos basados únicamente en texto hasta documentos multimedia. Es importante que quede claro que Web no es sinónimo de Internet, la Web consiste en páginas a las que se puede acceder usando un navegador. Internet es la red de redes donde reside toda la información. La principal característica de los documentos WWW es que estos se encuentran unidos a otros documentos mediante el hipertexto. El hipertexto permite ir de un documento a otro haciendo click sobre una palabra o sobre un gráfico que ha sido configurado como un enlace. Un enlace se indica normalmente mediante una palabra o un gráfico que se diferencia del resto del texto por presentar un color diferente o por estar resaltado. El proyecto del WWW fue desarrollado en el CERN (Laboratorio Europeo de Física Nuclear) en Suiza. El protocolo de transferencia de hipertexto (HTTP)

Instituto Tecnológico de Mexicali

15

es el protocolo base sobre el que se asienta el Web. Originalmente desarrollado para el intercambio de información entre físicos, el protocolo HTTP se incorporó muy rápidamente a Internet en cuanto la gente comenzó a darse cuenta de la gran versatilidad con que esta tecnología podía aplicarse [4].

3.3.

¿ C ÓMO FUNCIONA EL WWW?

El WWW está basado en un modelo cliente-servidor, utilizando el protocolo HTTP. Una computadora debe actuar como servidor, ofreciendo la información, y otra como cliente, recibiendo la información. La computadora servidor, debe estar corriendo el programa httpd (hyper-text transfer protocol daemon), el cual recibe las peticiones de información y las atiende. El cliente al conectarse a algún servicio en el Web, envía una señal a la computadora solicitando la información. El servidor la recibe y contesta esta petición , enviando el documento solicitado [3].

3.4.

T ECNOLOGÍAS CLIENTE / SERVIDOR

Las computadoras servidores son utilizadas como almacenes de recursos a los que acceden muchos usuarios. Los servidores esperan pasivamente para llevar a cabo las peticiones de las computadoras clientes que acceden a ellos. El cliente es el que solicita información al servidor. El servidor se encarga de recuperar la información y de enviarla al cliente, y es el cliente el que muestra la información al usuario. En la figura 3.2 se muestra el flujo petición-respuesta entre el cliente y el servidor.

Instituto Tecnológico de Mexicali

16

Figura 3.2: Cliente/Servidor

3.5.

HISTORIA DE LA

W ORLD W IDE W EB

La World Wide Web fue inventada en 1989 por un informático del CERN (Organización Europea de Investigación Nuclear) llamado Tim Berners-Lee. Era un sistema de hipertexto para compartir información basado en Internet, concebido originalmente para servir como herramienta de comunicación entre los científicos nucleares del CERN. Tim Berners-Lee había estado experimentando con hipertexto desde 1980, año en que programó Enquire, un programa para almacenar piezas de información y enlazarlas entre ellas. Enquire se ejecutaba en un entorno multiusuario y permitía acceder a varias personas a los mismos datos. Tim Berners-Lee entregó su propuesta al CERN en 1989, en septiembre de 1990 recibió el visto bueno y junto con Robert Cailliau comenzó a escribir el nuevo sistema de hipertexto. A finales de 1990 el primer browser de la historia, World Wide Web, ya tenía forma. Los documentos necesitaban un formato que fuera adecuado para su misión. En aquella época casi todo el mundo utilizaba TEX y PostScript, pero éstos eran demasiado complicados ya que debían ser leídos por todo tipo de computadoras,

Instituto Tecnológico de Mexicali

17

desde la terminales tontas hasta las estaciones de trabajo gráficas X-Windows. Así, tanto el lenguaje de intercambio (HTML), como el protocolo de red (HTTP) se diseñaron para ser realmente muy simples. HTML son las siglas de "Hypertext Mark-up Language". "Mark-up" es el conjunto de instrucciones estilísticas detalladas escritas en un manuscrito que debe ser tipografiado. Así, HTML podría ser traducido como "Lenguaje de Formato de Documentos para Hipertexto". HTML es una aplicación de SGML, un lenguaje muy general para definir lenguajes de formato de documentos. A principios de 1993 había alrededor de 50 servidores. Existían dos tipos de browsers: el original, gráfico, pero sólo para plataformas NeXT, y el browser en modo de línea, preparado para cualquier plataforma pero muy limitado y muy poco atractivo. En Febrero se lanzó la primera versión alfa del navegador "Mosaic for X", desarrollado en el NCSA (National Center for Supercomputing Applications). Funcionaba en X Windows, que era una plataforma popular entre la comunidad científica. En Abril el tráfico de la WWW era el 0,1 % del total de Internet. El CERN declaraba la WWW como tecnología de acceso gratuito. En septiembre ya había versiones de Mosaic para PC y Macintosh. El tráfico alcanzaba el 1 % de todo el tráfico de Internet y había más de 500 servidores. Es el comienzo del crecimiento explosivo de la Web. A finales del 94 ya había más de 10.000 servidores y 10 millones de usuarios. En 1997, más de 650.000 servidores.

3.6.

E XPLORADORES W EB

Un explorador es un programa con el cual se puede acceder y visualizar los archivos que se encuentran dentro e Internet. Antes de que llegaran los exploradores era necesario tener conocimiento de una gran cantidad de órdenes que permitían el acceso a todos los recursos de Internet. Los exploradores hacen que la utilización de Internet sea una tarea cómoda y sencilla. Para visualizar los recursos de Internet es necesario tener un explorador Web

Instituto Tecnológico de Mexicali

18

instalado en la computadora. Además, los exploradores Web permiten navegar a través de documentos de hipertexto e ir hacia delante y hacia atrás entre varios documentos.

3.7.

M OTORES DE BÚSQUEDA EN EL W EB

Para buscar hipertexto se utilizan programas llamados buscadores web que muestran en pantalla documentos o páginas web con información gráfica, textual, vídeo y audio. Al acto de seguir un enlace tras otro se le conoce como navegar en Internet. La web se ha convertido en un medio muy popular de publicar información en Internet, y con el desarrollo del protocolo de transferencia segura (secured server protocol (https)), la web es ahora un medio de comercio electrónico donde los consumidores pueden escoger sus productos on-line y realizar sus compras utilizando la información de sus tarjetas bancarias de forma segura [4].

3.8.

E STRUCTURA DE LA W EB

Antes de iniciar con el diseño de un sitio Web hay que tener bien definido cuál va a ser el propósito del sitio, que información contendrá y la audiencia de la que dispondrá. * Estructura de árbol o jerárquica: Se tiene una página principal (raíz) de la cual se abren unas secciones (ramas) las cuales contienen gran cantidad páginas web (hojas). * Estructura lineal: A partir de una página principal se accesa a las siguientes páginas una tras otra como si fuera un libro. * Estructura en red: Las páginas que forman el sitio Web se enlazan unas con otras sin ningún tipo de jerarquía.

Instituto Tecnológico de Mexicali

3.9.

19

A RQUITECTURA W EB

Los arquitectos Web diseñan los sitios Web. Los sitios Web deben estar integrados por Bases de datos, servidores, redes, componentes de backup y seguridad, etc.. para obtener como resultado final un sitio que resuelva las necesidades de las personas. En el desarrollo Web se requieren de conocimientos de lenguajes programación y estructura de bases de datos, el protocolo TCP/IP, el lenguaje HTML y muchos otros.

3.10.

V ENTAJAS DE LA W EB

Es bastante fácil de usar. El Hipertexto en Internet, es un método fácil y simple de encontrar y usar en cualquier dato que exista. La Web nos permite el acceso a recursos de Internet (un universo de información).

3.11.

¿Q UÉ ES LA ACCESIBILIDAD W EB ?

La Accesibilidad Web permite que personas puedan entender, navegar e interactuar con la Web. La Web es importante para diferentes aspectos de la vida: educación, empleo, comercio, entretenimiento y muchos otros.

3.11.1.

V ENTAJAS DE LA ACCESIBILIDAD WEB

Cumplir un derecho ciudadano a la participación y no discriminación por razón de discapacidad.

Instituto Tecnológico de Mexicali

20

Mayor alcance de la comunicación, servicios o mercado. Garantiza la equivalencia de los contenidos entre distintos navegadores y dispositivos. Permite a los motores de búsqueda una mejor identificación de los contenidos.

3.12.

¿Q UÉ ES LA W EB S EMÁNTICA ?

La Web Semántica es una Web extendida, en la que el usuario en Internet podrá encontrar respuestas a sus preguntas de forma más rápida y sencilla gracias a una información mejor definida, utiliza lenguajes que resuelven los problemas ocasionados por una Web carente de semántica en la que, en ocasiones, el acceso a la información se hace una tarea difícil[7].

3.12.1.

¿PARA QUÉ SIRVE ?

Gracias a la semántica en la Web, el software es capaz de procesar su contenido, razonar con este, combinarlo y realizar deducciones lógicas para resolver problemas cotidianos automáticamente.

3.12.2.

¿C OMO FUNCIONA ?

Supongamos que la Web tiene la capacidad de construir una base de conocimiento sobre las preferencias de los usuarios y que, a través de una combinación entre su capacidad de conocimiento y la información disponible en Internet, sea capaz de atender de forma exacta las demandas de información por parte de los usuarios en relación, por ejemplo, a reserva de hoteles, vuelos, médicos, libros, etc.

Capítulo 4 Apache 4.1.

D EFINICIÓN

Apache es un servidor Web potente y flexible que funciona en distintas plataformas y entornos, estas hacen que a menudo sean necesarias diferentes características o funcionalidades, o que una misma característica o funcionalidad se realice de diferente manera para obtener una mayor resultado. El diseño modular de Apache permite a los administradores de sitios Web elegir que características se van a incluir en el servidor al seleccionar los módulos que se van a cargar, ya sea al compilar o al ejecutar el servidor.

Figura 4.1: Servidor Apache.

21

Instituto Tecnológico de Mexicali

4.1.1.

22

¿C OMO FUNCIONA A PACHE ?

El servidor viene con una serie de Módulos de Multiprocesamiento que son responsables de conectar con los puertos de red de la máquina, aceptar las peticiones, y generar los procesos hijo que se encargan de servirlas. Software Requerido: Apache (Ver 2.0.x) . Hardware Requerido: Servidor a 250 Mhz, 256 MB RAM, 8 GB disco duro.

4.2.

H ISTORIA DE APACHE

La historia de Apache se remonta a febrero de 1995, donde empieza el proyecto del grupo Apache, el cual esta basado en el servidor Apache httpd de la aplicación original de NCSA. El desarrollo de esta aplicación original se estancó por algún tiempo tras la marcha de Rob McCool por lo que varios webmaster siguieron creando sus parches para sus servidores web hasta que se contactaron vía email para seguir en conjunto el mantenimiento del servidor web, fue ahí cuando formaron el grupo Apache. Fueron Brian Behlendorf y Cliff Skolnick quienes a través de una lista de correo coordinaron el trabajo y lograron establecer un espacio compartido de libre acceso para los desarrolladores. Aquella primera versión y sus sucesivas evoluciones y mejoras alcanzaron una gran implantación como software de servidor inicialmente solo para sistemas operativos UNIX y fruto de esa evolución es la versión para Windows . Apache es una muestra, al igual que el sistema operativo Linux (un Unix desarrollado inicialmente para PC), de que el trabajo voluntario y cooperativo dentro de Internet es capaz de producir aplicaciones de calidad profesional difíciles de igualar. La licencia Apache es una descendiente de la licencias BSD, no es GPL. Esta licencia te permiten hacer lo que quieras con el código fuente (incluso forks y productos propietarios) siempre que les reconozcas su trabajo.

Instituto Tecnológico de Mexicali

4.3.

23

C ARACTERÍSTICAS Y VENTAJAS DEL A PACHE Corre en una multitud de Sistemas Operativos. Apache es una tecnología gratuita de código fuente abierto. Apache es un servidor configurable de diseño modular. Apache trabaja con gran cantidad de Perl, PHP y otros lenguajes de script. Apache te permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor. Es posible configurar Apache para que ejecute un determinado script cuando ocurra un error en concreto. Tiene una alta configurabilidad en la creación y gestión de logs. Apache permite la creación de ficheros de log, de este modo puedes tener un mayor control sobre lo que sucede en tu servidor [5].

4.4.

A PACHE 2.0

El Apache Group libero la versión considerada estable del nuevo apache 2.0, se trata de la versión 2.0.35. el cual incorpora muchas mejoras y novedades sobre la versión anterior. Apache es sin duda el mejor servidor de páginas Web del mundo, en la figura 4.2 Apache demuestra como es el líder en los últimos años (con aproximadamente el 60 % del total de servidores http de toda Internet).

Instituto Tecnológico de Mexicali

Octubre 2006 Apache 60166642 Microsoft 30704021 Sun 332113 Zeus 522311

% 61.44 31.35 0.34 0.53

24

Noviembre 2006 61183776 31487005 1703767 520228

% 60.32 31.04 1.68 0.51

Cambios -1.12 -0.31 1.34

Figura 4.2: Gráfica de Servidores

4.5.

P RINCIPALES M EJORAS

La nueva versión 2.0, incorpora variedad de novedades y mejoras.

4.5.1.

H EBRADO EN U NIX

En los sistemas Unix que soportan hebras POSIX, la nueva versión de Apache puede ejecutarse en modo híbrido multiproceso-multihebra. Esto mejora la escalabilidad para muchas aunque no para todas las configuraciones.

Instituto Tecnológico de Mexicali

4.5.2.

25

N UEVO SISTEMA DE CONFIGURACIÓN Y COMPILACIÓN

El sistema de configuración y compilación se tubo que escribir de nuevo desde cero para basarlo en autoconf y libtool. Esto hace que el sistema de configuración de Apache se parezca ahora más al de otros proyectos Open Source.

4.5.3.

S OPORTE MULTIPROTOCOLO

La nueva versión tiene la infraestructura necesaria para servir distintos protocolos. Por ejemplo, se ha escrito el módulo mod_echo.

4.5.4.

S OPORTE PARA PLATAFORMAS QUE NO SON U NIX

La versión 2.0 de Apache es más rápida y más estable en sistemas que no son tipo Unix, tales como BeOS, OS/2 y Windows, que la versión antigua. Con la introducción de módulos de Multiprocesamiento (MPMs) específicos para cada plataforma y del Apache Portable Runtime (APR), estas plataformas tienen ahora implementada su propia API nativa, evitando las capas de emulación POSIX que provocan problemas y un bajo rendimiento.

4.5.5.

N UEVA INTERFAZ DE PROGRAMACIÓN (API)

La API para los módulos ha cambiado significativamente en la nueva versión. Muchos de los problemas de ordenación y prioridad de módulos de la versión 1.3 deben haber desaparecido. Apache 2.0 hace automáticamente mucho de lo que es necesario, y la ordenación de módulos se hace ahora por hooks, lo que ofrece una mayor flexibilidad. También se han añadido nuevas llamadas que ofrecen capacidades adicionales sin tener que parchear el núcleo del servidor Apache.

Instituto Tecnológico de Mexicali

4.5.6.

26

F ILTROS

Los módulos de Apache pueden comportarse como filtros que actúan sobre el flujo de contenidos tal y como salen del servidor o tal y como son recibidos por el servidor. Esto permite, por ejemplo, que el resultado de un script CGI sea analizado por las directivas Server Side Include usando el filtro INCLUDES del módulo mod_include. El módulo mod_ext_filter permite que programas externos actúen como filtros casi del mismo modo que los CGIs pueden actuar como handlers.

4.5.7.

M ENSAJES DE ERROR

Los mensajes de error que se envían a los navegadores están disponibles en diferentes idiomas, usando documentos SSI.

4.5.8.

M EJORAS EN LOS MÓDULOS

mod_ssl: Este módulo es una interfaz para los protocolos de encriptado SSL/TLS de OpenSSL. mod_dav: Este módulo implementa la especificación del HTTP Distributed Authoring and Versioning (DAV) para colgar y mantener contenidos Web. mod_deflate: Este módulo permite soportar nevagadores que requieren que el contenido sea comprimido antes de ser servido, ahorrando ancho de banda. mod_auth_ldap: Este módulo permite que se pueda usar una base de datos LDAP para almacenar las credenciales en la autenticación básica HTTP. mod_auth_digest: Incluye soporte adicional para cache de sesiones entre procesos usando memoria compartida. mod_charset_lite: Este módulo experimental permite for traducción o recodificación de sets de caracteres.

Instituto Tecnológico de Mexicali

27

mod_file_cache: Este módulo incluye la funcionalidad que mod_mmap_static tenía en Apache 1.3, e incorpora nuevas capacidades de cacheado. mod_headers: Este módulo puede modificar las cabeceras de las peticiones usadas por mod_proxy, y puede fijar condicionalmente cabeceras de respuesta. mod_proxy El módulo proxy ha sido completamente reescrito para aprovechar la nueva infraestructura de filtros. Además, se han incorporado nuevas secciones de configuración a la directiva que hacen mas fácil el control de los sitios Web que usan proxys; las configuraciones de sobrecarga no se soportan. El módulo está ahora dividido en módulos específicos para cada protocolo, incluidos proxy_connect, proxy_ftp y proxy_http. mod_negotiation: La nueva directiva ForceLanguagePriority se puede usar para asegurarse de que el cliente recibe siempre solo un documento, en lugar de obtener una respuesta de tipo NOT ACEPTABLE o MULTIPLE CHOICES. mod_autoindex: Ahora pueden configurarse listados de directorios autoindexados para usar tablas HTML, darles formato de forma más sencilla, y permitir control detallado del ordenamiento, incluidos ordenamiento por versión, y filtrado usando caracteres comodines de los listados de directorios. mod_include: Estas nuevas directivas permiten cambiar las etiquetas por defecto de comienzo y final para elementos SSI y permiten que la configuración de errores y el formato de la hora y la fecha se hagan en el fichero de configuración pricipal en lugar de en el documento SSI. mod_auth_dbm: Ahora se soportan varias clases de bases de datos de tipo DBM usando la directiva AuthDBMType.

Instituto Tecnológico de Mexicali

28

Apache es un ejemplo de lo que se puede conseguir con el código libre. La combinación de tres herramientas libres como Apache, PHP y MySQL, son el centro de millones de sitios Web dinámicos [6].

4.6.

A NTES DE INSTALAR EL S ERVIDOR W EB

Antes de instalar un servidor Web se tienen que ver el soporte físico (hardware) sobre el que correrá el servidor: interfaces de red, sistema de almacenamiento SCSI con soporte RAID, memoria RAM de al menos 256 MB, procesador dependiente de si el contenido del sitio Web es mas bien dinámico o estático, y sobre todo si tiene que acceder a diferentes bases de datos. Y en cuanto al software, el sistema operativo también es importante a la hora de montar un sitio Web, junto con el software servidor de Web. Apache empezó como una serie de parches al servidor de Web desarrollado en el National Center for Supercomputing Application (NCSA) y una vez abandonado el proyecto de NCSA, programadores de todo el mundo encontraron la necesidad de tener un repositorio central donde mantener el código y los parches del nuevo software. Así surgió la Apache Software Foundation [6].

4.7.

S ERVIDOR W EB

Antes de la instalación y configuración del servidor apache, necesitábamos un dominio para la web que nos rediriga la IP del servidor Web deseado. Necesitamos dos servidores DNS, uno que sera el encargado de traducir los nombres de dominio a IPs y viceversa y otro servidor que traduja el dominio a la IP donde se tiene pensado poner el servidor web.

4.7.1.

I NSTALAR S ERVIDOR A PACHE

Para instalar el programa, solo tenemos que escribir desde la consola:

Instituto Tecnológico de Mexicali

29

# apt-get install apache2 apt-get es un programa para bajar programas de Internet y todo lo necesario para que funcione, lo instala y lo deja apunto para ser configurado. Ya que lo instalamos, lo que sigue es la configuración y basaremos en la edición de algunos archivos de configuración del apache. Lo primero de todo es editar (vi /etc/apache2/apache2.conf) el archivo principal, para personaliza Apache y ajustarlo a nuestras necesidades. Después se deben de hacer copias de seguridad, para recuperar el archivo en caso de tener problemas: # cp /etc/apache2/apache2.conf /etc/apache2/apche2.conf.old # vi /etc/apache2/apache2.conf Aparecerá una pantalla negra con líneas que empiezan con el símbolo "#", indican que no son código, sino comentarios, y por lo tanto son ignoradas.

Capítulo 5 A RCHIVOS DE C ONFIGURACIÓN 5.1.

M ÓDULOS DE M ULTI P ROCESAMIENTO core: Funciones básicas del servidor HTTP Apache. mpm_common: Colección de directivas implementadas en más de un módulo de multiprocesamiento (MPM) . beos: Es un módulo optimizado para BeOS. leader: Variante del MPM estándar worker. prefork: Implementa un servidor web pre-forking y no hebrado. mpm_winnt: Módulo de optimizado para Windows NT. worker: Módulo de MultiProcesamiento que implementa un servidor web híbrido multihebra-multiproceso.

5.2.

A RCHIVOS DEL SERVIDOR WEB A PACHE El archivo principal de configuración httpd.conf.

30

Instituto Tecnológico de Mexicali

31

En este archivo se encuentra la información de la configuración de Apache y se lee cada vez que arranca el servidor [8]. Los archivos de log del servidor: 1. access.log: Aquí se almacenan todas las conexiones que se hacen al servidor. 2. error.log: Aquí se almacenan los errores que ocurren dentro del servidor. * ARCHIVO DE LOG DE ACCESOS : En este fichero se almacenan todas las peticiones que recibe el servidor Web y es posible saber desde que lugares del mundo se están conectando a nuestro servidor, que navegador utilizan, horas, y también saber cuales son los documentos más visitados. * ARCHIVO DE LOG DE ERRORES : Apache registra todos los errores que encuentra y los almacena en este archivo, para el administrador le sera mas fácil detectar los posibles fallos en el servidor y encontrar una solución.

5.2.1.

A RCHIVO PRINCIPAL DE CONFIGURACIÓN

En el archivo principal se encuentra toda la información referente al servidor y Apache carga este archivo cada vez que arranca. Para configurar Apache utiliza directivas. Estas pueden ser de dos formas: Nucleares: Se encuentran dentro del núcleo del servidor. En la documentación original de Apache se las referirá como core. Básicas: Se encuentran dentro de un módulo con lo cual será necesario cargar dicho módulo para poder utilizarlas. El archivo principal consta de tres secciones: 1. Configuración global.

Instituto Tecnológico de Mexicali

32

2. Configuración del servidor principal. 3. Configuración de los Servidores Virtuales. Cuando instalamos Apache nos instala un fichero con la configuración por defecto, este fichero suele ser /etc/apache2/apache2.conf En el caso de que en nuestra distribución de GNU/Linux no este en el mismo sitio siempre podremos recurrir a finad: ____________________________________________________ debian:~# find / -name httpd.conf / etc/apache/httpd.conf debian:~# En algunas distribuciones se puede encontrar en: /etc/apache/conf/httpd.conf ____________________________________________________ 5.2.1.1.

S ECCIÓN DE CONFIGURACIÓN

GLOBAL

*************************************************************************** ### Section 1: Global Environment ServerType standalone ServerRoot /etc/apache LockFile /var/lock/apache.lock PidFile /var/run/apache.pid ScoreBoardFile /var/run/apache.scoreboard TimeOut 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 MinSpareServers 5 MaxSpareServers 10 StartServers 5

Instituto Tecnológico de Mexicali

33

MaxClients 150 MaxRequestsPerChild 100 Listen 80 LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so LoadModule status_module /usr/lib/apache/1.3/mod_status.so .... ExtendedStatus On *********************************************************************** ServerType standalone. Estatus: Nuclear. Contexto: Configuración del Servidor. Esta directiva indica la forma en que Apache arranca. Tiene dos opciones: 1. standalone. El servidor arranca como un servicio más del sistema y funciona de manera independiente. 2. inetd. El servidor es controlado por el demonio inetd o xinetd. Lo mas común de arrancar Apache es standalone, si no se hace de esta manera, cada vez que el servidor reciba una petición el demonio inetd tendrá que arrancar Apache, lo cual es muy lento ya que tiene que acceder a disco y cargar el servidor web todas las librerías necesarias y los módulos de Apache y esto hace mas lento la respuesta del servidor. ServerRoot: Indica el directorio base para los archivos de configuración del servidor. LockFile: Especifica el archivo de bloqueo que utiliza Apache. Dicho fichero debe estar en una unidad de disco local y no en otra máquina. Por lo general esta directiva no se cambia,se deja con su valor por defecto.

Instituto Tecnológico de Mexicali

34

PidFile: Especifica el fichero en el que se almacena el número del proceso del servidor web Apache . ScoreBoardFile: En este fichero se almacena información interna del servidor y comunica al servidor primario con los secundarios. TimeOut:Tiempo en segundos, en el que el servidor esperará por recibir y transmitir durante la comunicación. Está configurado por defecto a 300 segundos. Si después de ese tiempo el servidor no ha recibido ninguna petición del cliente, se cerrará la conexión. Esta directiva afecta al rendimiento del servidor por lo tanto es importante. Para provocar tantas peticiones que el servidor no pueda atenderlas y se caiga o bien no atienda a otras peticiones legítimas, se hacen peticiones a un servidor modificando la cabecera de los paquetes poniendo como dirección IP una dirección IP falsa, para que el servidor mande paquetes a una dirección que no existe y esperara la respuesta del cliente, un paquete ACK, que no recibirá. Cuando se tengan demasiadas peticiones llegará un momento en el que todas las peticiones que este atendiendo el servidor serán falsas y si no se pone una condición para terminar la conexión, un tiempo máximo de espera, el servidor estaría esperando a que un cliente inexistente le conteste. KeepAlive:Determina si el servidor permitirá más de una petición por conexión y se puede usar para prevenir a un cliente consumir demasiados recursos del servidor. Por ejemplo, Para hacer una petición al servidor de una página Web que contiene tres imágenes, se hacen 4 peticiones, una para la página y una por cada imagen. Al tener activadas las conexiones persistentes, permite hacer todas las peticiones a través de la misma conexión sin tener que negociar nuevas conexiones. La respuesta del servidor es más rápida obteniendo un mejor rendimiento. Esta directiva admite dos opciones:

Instituto Tecnológico de Mexicali

35

1. On, conexiones persistentes activadas. 2. Off, conexiones persistentes desactivadas. MaxKeepAliveRequests: Establece el número máximo de peticiones permitidas por cada conexión persistente. El valor predeterminado de MaxKeepAliveRequests es de 100. KeepAliveTimeout: Establece el número de segundos que el servidor esperará al haber dado servicio a una petición, antes de cerrar la conexión. KeepAliveTimeout está configurado a 15 segundos. MinSpareServers: Establece el número mínimo de servidores que están desocupados esperando peticiones. Siempre habrá algún servidor desocupado esperando. MaxSpareServers: Controla el número máximo de servidores desocupados que habrá. Cuando una copia de Apache termina de atender a un cliente o cierra la conexión, el número de servidores desocupados incrementa. Cuando hay más servidores desocupados de los que se especificaron, Apache elimina a los que sobran para evitar saturar la memoria del sistema. StartServers: Establece la cantidad de servidores que arrancan al iniciar Apache. Cuando arranca Apache arranca varias copias de sí mismo las cuales esperan peticiones y se agiliza el rendimiento del servidor. MaxClients: Establece el número máximo de clientes que Apache puede atender. Cada copia de Apache puede responder a peticiones de hasta 256 clientes. Para los servidores muy ocupados este valor se debería colocar a un valor de 150. MaxRequestsPerChild: Esta directiva establece el número máximo de peticiones que servirá cada proceso hijo de Apache. La principal razón para configurar MaxRequestsPerChild es evitar que procesos de larga vida gasten memoria.

Instituto Tecnológico de Mexicali

36

Listen: Indica los puertos en los que el servidor Web aceptará las peticiones entrantes. Por defecto, el Servidor Apache HTTP está configurado para escuchar en el puerto 80. LoadModule: Carga los módulos necesarios para el servidor Web, en lugar de añadir nuevas características estas se implementan como módulos y estos se cargan de forma dinámica en el servidor. ExtendedStatus: Esta directiva se utiliza para activar el control de información extendida en las solicitudes que recibe el servidor. Tiene dos opciones: 1. On, activado. 2. Off, desactivado. 5.2.1.2.

S ECCIÓN DE CONFIGURACIÓN

DEL SERVIDOR PRINCIPAL

*************************************************************************** ### Section 2: ’Main’ server configuration Port 80 User www-data Group www-data ServerAdmin ServerName DocumentRoot /var/www .......... .......... ......... .......... ......... AccessFileName .htaccess Order allow,deny Deny from all UseCanonicalName On

Instituto Tecnológico de Mexicali

37

TypesConfig /etc/mime.types DefaultType text/plain ......... HostnameLookups Off ErrorLog /var/log/apache/error.log LogLevel warn LogFormat " %h %l %u %t \" %r\" %>s %b" common CustomLog /var/log/apache/access.log common ServerSignature On Alias /icons/ /usr/share/apache/icons/ .......... ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ .......... ......... ......... AddDefaultCharset on ......... ......... order deny,allow deny from all allow from 127.0.0.0/255.0.0.0 Options Indexes FollowSymLinks MultiViews *********************************************************************** ... Esta directiva se utiliza para indicar el comportamiento que ha de tener sobre un directorio en el servidor Web. ... Esta directiva se utiliza para indicarle al servidor Web el comportamiento sobre unos determinados ficheros.

Instituto Tecnológico de Mexicali

38

... En el caso de que un módulo se carge, esta directiva se utiliza para especificar las acciones a realizar. ... Esta directiva es muy parecida a la directiva Directory pero se aplica a URL’s y no a directorios. Port 80: Estatus: Nuclear. Contexto: Configuración del Servidor. Indica el puerto por el que el servidor estará escuchando peticiones HTTP. El puerto asignado por defecto para los servicios web es el 80. User: Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost. Establece el nombre de usuario para el proceso del servidor y determina qué archivos pueden acceder al servidor. Cualquier archivo que no esté accesible a este usuario tampoco estará disponible para los clientes conectándose al Servidor Apache HTTP. Group: Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost. Esta directiva indica el grupo del usuario bajo el cual se ejecuta el servidor.

Instituto Tecnológico de Mexicali

39

ServerAdmin: Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost. Especifica la dirección de correo electrónico del administrador del servidor web. Cada vez que el servidor produzca un error se imprimirá. ServerName: Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost. Aquí se especifica el nombre del servidor Web. En caso de no hacerse, el servidor obtendrá el nombre del servidor mediante resoluciones inversas de DNS a través de su dirección IP. DocumentRoot: Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost. Es el directorio que contiene la mayoría de los archivos HTML que se entregarán en respuesta a peticiones. Define el directorio desde el cual el servidor servirá los documentos. El servidor añadirá el PATH a la URL a menos que la URL solicitada coincida con una directiva Alias. AccessFileName: Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost. Sirve para especificar el nombre de los archivos de control de acceso para los directorios. Es posible especificar los controles de acceso mediante las directivas ... pero también se puede hacerse con el uso de los

Instituto Tecnológico de Mexicali

40

archivos de control de acceso. La ventaja es que cuando se inicia Apache se lee la configuración del fichero httpd.conf y si especificamos todas las reglas de acceso para todos los directorios que el servidor está sirviendo en dicho archivo cada vez que modifiquemos alguna regla de acceso tendremos que reiniciar el servidor. El administrador del servidor puede delegar los controles de acceso a archivos especificados por esta directiva y que serán mantenidos por el webmaster del sitio web correspondiente. Con el fin de no reiniciar el servidor cada vez que se cambie alguna de las reglas de control de acceso en estos archivos. UseCanonicalName: Estatus: Nuclear. Contexto: Configuración del Servidor, directivas VirtualHost, Directory y ficheros de control de acceso .htaccess. Aquí servidor Web utiliza los valores de las directivas ServerName y Port para construir URL’s de redireccionamiento, los cuales aparecen en los mensajes de error por ejemplo, y para suministrarse la a programas CGI. Esta directiva tiene dos opciones: 1. On, activado. El servidor formará las URL’s a partir del documento pedido por el cliente. 2. Off, desactivado. El servidor utilizará la URL completa suministrada por el cliente. TypesConfig: Estatus: módulo mod_mime.so. Contexto: Configuración del servidor. Nombra el archivo que configura la lista por defecto de asignaciones tipo MIME (extensiones de nombres de archivo a tipos de contenido. Cuando no se tenga una ruta absoluta se toma como relativa a ServerRoot.

Instituto Tecnológico de Mexicali

41

Los tipos MIME son los Tipos Multimedia de Internet y son gestionados por I.A.N.A. (Autoridad de Números de Asignación de Internet) [1]. DefaultType: Estatus: Nuclear. Contexto: Configuración del Servidor, directivas VirtualHost, Directory y ficheros de control de acceso .htaccess. Especifica el tipo MIME por defecto de los archivos de los que no pueda ser determinado su tipo. HostnameLookups: Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost y Directory. Habilita o no, la búsqueda de los nombres de los clientes por resoluciones inversas de DNS. HostnameLookups se puede configurar a on, off o double. Si se configura HostnameLookups a on, el servidor automáticamente resuelve las direcciones IP para cada conexión. Resolver las direcciones IP significa que el servidor hace una o más conexiones a un servidor DNS, añadiendo sobrecarga por procesamiento. Si HostnameLookups es configurado a double, el servidor realiza búsquedas inversa doble del DNS, añadiendo aún más sobrecarga. Para ahorrar recursos en el servidor, HostnameLookups es configurado a off por defecto. ErrorLog: Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost. Esta directiva indica cual es el archivo en el que se almacenarán los log de error del servidor. Por defecto, esta directriz es configurada a /var/log/apache/error.log

Instituto Tecnológico de Mexicali

42

LogLevel: Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost. Establece el nivel de los mensajes de error que se registrarán en los archivos de log del sistema (emerg, alert, crit, error, warn, notice, info o debug) Los niveles de error tienen una prioridad y al especificar uno se registrarán todos aquellos mensajes que tengan una prioridad mayor o igual. El valor predeterminado de LogLevel es warn. LogFormat: Estatus: módulo mod_log_config.so. Contexto: Configuración del Servidor y directivas VirtualHost. Define nuestros propios formatos para los archivos de log del sistema permitiéndonos especificar varios formatos de log con la información que queramos. Las siguientes son las opciones de formato si la directriz CustomLog: %h (dirección IP del post remoto o nombre de la máquina). Lista la dirección IP de la máquina remota del cliente solicitante. Si HostnameLookups es configurada a on, el nombre de máquina del cliente es registrado a menos que no este disponible desde el DNS. %l (rfc931). No se usa. Un guión [-] aparece en el campo de registro para este campo. %u (usuario autenticado). Si se requiere autenticación, lista el nombre del usuario registrado. Usualmente, esto no se utiliza, por tanto aparece un guión [-] en el archivo de registro para este campo. %t (fecha). Lista la fecha y hora de la solicitud. %r (cadena de la solicitud). Lista la cadena de la solicitud exactamente como viene del navegador o cliente.

Instituto Tecnológico de Mexicali

43

%s (estado). Lista el estado de código HTTP el cual fue devuelto al host cliente. %b (bytes). Lista el tamaño del documento. %\" %{Referer}i\" (referencia). Lista la dirección URL de la página web que refiere el máquina cliente al servidor Web. %\" %{User-Agent}i\" (agente usuario). Lista el tipo de navegador Web que está realizando la solicitud. CustomLog: Estatus: módulo mod_log_config.so. Contexto: Configuración del Servidor y directivas VirtualHost. Define un archivo de log y el tipo de log que se almacenará en ese archivo. El tipo debe de haber sido definido previamente con una directiva LogFormat. Por defecto, el registro es guardado al archivo /var/log/apache/access.log common. ServerSignature: Estatus: Nuclear. Contexto: Configuración del Servidor, directivas VirtualHost, Directory y ficheros de control de acceso .htaccess. Añade una línea que contiene la versión del Servidor Apache HTTP y el ServerName para cualquier documento generado por el servidor, tales como mensajes de error devueltos a los clientes. Por defecto ServerSignature está configurada a on pero también se puede configurar a off o a EMail. Esta directiva tiene tres opciones: 1. On, Apache agrega el nombre del servidor y la versión como una especia de firma a las páginas de error generadas automáticamente. 2. Off, No agrega la firma a las páginas de error.

Instituto Tecnológico de Mexicali

44

3. EMail, Agrega un vínculo mailto: que contiene la dirección de correo especificada en la directiva ServerAdmin. Alias: Estatus: módulo mod_alias.so. Contexto: Configuración del Servidor y directivas VirtualHost. Esta directiva muestra directorios que están fuera de la jerarquía de DocumentRoot como si lo estuvieran. Por ejemplo si un cliente solicitará http://www.midominio.es/icons el servidor le mostraría /usr/share/apache/icons/ que está fuera de la jerarquía de DocumentRoot, /var/www/. ScriptAlias: Estatus: módulo mod_alias.so. Contexto: Configuración del Servidor y directivas VirtualHost. Esta directiva hace lo mismo que la directiva Alias pero esta vez para directorios de scripts CGI. Normalmente, no es una buena idea colocar los scripts CGI dentro de DocumentRoot, donde podrían, ser visualizados como documentos de texto. Por esta razón, la directriz ScriptAlias diseña un directorio especial fuera del directorio DocumentRoot para contener ejecutables del servidor y scripts. Este directorio es conocido como un cgi-bin y se configura por defecto a /cgi-bin/ /usr/lib/cgi-bin/. AddDefaultCharset On. Estatus: Nuclear. Contexto: Configuración del Servidor y directivas VirtualHost. Aquí se especifica el juego de carácteres que utilizará el servidor. Esta directiva tiene tres opciones:

Instituto Tecnológico de Mexicali

45

1. On, juego de carácteres por defecto: iso-8859-1. 2. Off, juego de carácteres especificado por el cliente. 3. Otro,alternativo de carácteres, en este caso Apache utilizará el juego especificado.

5.2.2.

V IRTUAL H OSTS

Un servidor Web puede contener diferentes sitios Web en la misma máquina y atenderlos por el mismo servidor Web utilizando servidores virtuales. Pero primero se tiene que especificar cada sitio Web dentro de la directiva ... . Apache crea hosts virtuales de dos formas: 1. Por nombre. Todos los hosts virtuales tienen la misma dirección IP con nombres distintos. 2. Por IP. Cada hosts tienen su propia dirección IP. Utilizando diferentes nombres de hosts (alias) o diferentes IP’s n servidor Web puede albergar diferentes sitios web. : Dentro de estas directivas se incluye cualquier otra que haga refenrencia a este host particular. Asocia una dirección IP y número de puerto para cualquier máquina virtual basada en nombres. El hospedaje virtual basado en nombres permite a un Servidor Apache HTTP servir a dominios diferentes sin usar múltiples direcciones IP.

Instituto Tecnológico de Mexicali

46

D IRECTIVAS : Document Root NameVirtualHost Sercver Alias ServerName ServerPath

Para usar host virtual basado en nombres, se debe especificar en el servidor la dirección IP que se va a usar para atender las peticiones a los diferentes hosts con la directiva NameVirtualHost. Si va a usar más de un puerto (por ejemplo si va usar SSL) debe añadir un puerto a cada argumento, por ejemplo *:80. Teniendo en cuenta que una dirección IP en la directiva NameVirtualHost no hace que el servidor escuche automáticamente en esa dirección IP. Además, cualquier dirección IP especificada debe asociarse con un dispositivo de red del servidor. El siguiente paso es crear un bloque para cada host diferente que quiera alojar en el servidor. El argumento de la directiva debe ser el mismo que el argumento de la directiva NameVirtualHost (una dirección IP, o un * para usar todas las direcciones que tenga el servidor). Dentro de cada bloque , necesitará como mínimo una directiva ServerName para designar qué host se sirve y una directiva DocumentRoot para indicar dónde están los contenidos a servir dentro del sistema de ficheros. ServerName: Especifica el nombre de host que aparecerá en la cabecera de la petición. Al utilizar el soporte de host virtuales se puede definir prácticamente un número de servidores ilimitado, de fácil configuración y que no requiere hardware adicional. La desventaja es que el software cliente debe soportar esta parte del protocolo.

Instituto Tecnológico de Mexicali

47

Es fácil mantener varios sitios web con diferentes nombres de dominio tan solo con definir varios alias (CNAME). Por ejemplo, suponga que está sirviendo el dominio www.dominio.tld y quiere añadir el host virtual www.otrodominio.tld, que apunta a la misma dirección IP. Entonces, lo único que tiene que hacer es añadir lo siguiente: +++++++++++++++++++++++++ NameVirtualHost 111.22.33.44 ServerName www.dominio.tld DocumentRoot /www/dominio ServerName www.otrodominio.tld DocumentRoot /www/otrodominio +++++++++++++++++++++++++ También puede optar por especificar una dirección IP explícitamente en lugar de usar un * en las directivas NameVirtualHost y . Por ejemplo, puede hacer esto para hacer funcionar diferentes hosts virtuales basados en nombres en una dirección IP, o basados en IPs, o un conjunto de hosts virtuales basados en nombres en otra dirección. También puede que quiera que se acceda a un determinado sitio web usando diferentes nombres. Esto es posible con la directiva ServerAlias, puesta dentro de la sección . Por ejemplo, en el primer bloque de arriba, la directiva ServerAlias indica la lista de nombres que pueden usarse para acceder a un mismo sitio web: ServerAlias dominio.tld *.dominio.tld entonces las peticiones para todos los hosts en el dominio dominio.tld serán servidas por el host virtual www.dominio.tld. Los carácteres comodines * y ? pueden usarse para encontrar equivalencias con los nombres. La mayor parte de las directivas pueden ponerse en esos containers y cambiarán solo la configuración del host virtual al que se refieran. Las directivas de configura-

Instituto Tecnológico de Mexicali

48

ción se usan única y exclusivamente si sus valores no son sustituidos por alguno de los parámetros de configuración del host virtual. Cuando llega una petición, el servidor primero verifica si se está usando una dirección IP que coincide con el valor de la directiva NameVirtualHost. Si es el caso, mirará en cada sección cuya IP coincida e intentará encontrar si el valor de la directiva ServerName o de la directiva ServerAlias coincide con el nombre del sitio web de la petición. Si encuentra una coincidencia, usa la configuración de ese servidor. Si no la encuentra, usa el primer host virtual de la lista cuya dirección IP coincida con el de la petición. Como consecuencia, el primer host virtual de la lista es el que se usa por defecto. La directiva DocumentRoot del servidor principal no se usará nunca cuando una dirección IP coincida con el valor de la directiva NameVirtualHost. Si quiere usar una configuración especial para peticiones que no coinciden con ningún host virtual en concreto, ponga esa configuración en una sección y póngala la primera en el fichero de configuración.

Capítulo 6 AUTENTICACIÓN , AUTORIZACIÓN Y C ONTROL DE ACCESO La autenticación es cualquier proceso el cual se verifica que alguien es realmente quien dice ser. La autorización es cualquier proceso por el cual a alguien se le permite estar donde quiere ir, o tener la información que quiere tener. Control de acceso de a cuerdo con la auntentificacion y la autorización le es permitido acceder a datos o a recursos.

6.1.

AUTENTICACIÓN Y AUTORIZACIÓN

El cliente envía su nombre y su password al servidor, entonces un modulo de Apache es el encargado de verificar si los datos son correctos, y si lo son entonces muestra la página solicitada. En el caso de que el usuario no tenga el acceso o el password no es correcto, el servidor Apache muestra Acceso no Autorizado( código de estado 401).

49

Instituto Tecnológico de Mexicali

6.2.

50

ACCESO R ESTRINGIDO POR U SUARIO Y PAS SWORD

Para poder definir este tipo de autenticación, es necesario seguir dos pasos: 1. Crear un fichero el cual tendrá los usuarios y los passwords. Htpasswd -c -b /etc/httpd/conf/db_users fferrer MIS2000 2. Definir las zonas a restringir. Lo haremos al definir el fichero llamado .htaccess en el directorio a restringir. .htaccess: Directivas de Configuración. Cuando el servidor tiene que acceder a una zona donde se encuentra un fichero .htaccess ( definido por AccessFileName ) comprobará las directivas definidas en el para permitir o no el acceso. El servidor necesita conocer que directivas declaradas en este fichero pueden sobreescribir la información de acceso anterior declarada por la directiva AllowOverride. AuthName: Define un nombre para la zona protegida. Una vez que un usuario introdujo credenciales válidas para esta zona, cualquier recurso dentro de esta zona sera accedido con las mismas credenciales. AuthType: Sistema de autentificación utilizado. Puede ser Basic o Digest. AuthUserFile: Localización del fichero creado con el comando httpasswd. Require:

Instituto Tecnológico de Mexicali

51

Define que nombres de usuario del fichero tienen derechos de acceso. Valid-user sería un caso especial refiriendose a cualquier usuario del fichero. .htacces AuthName Protegido AuthType Basic AuthUserFile /etc/httpd/conf/db_usersrequire valid-user

6.3.

L OS P RERREQUISITOS

Las directivas deben ir en el archivo de configuración principal del servidor. Si se usan archivos .htaccess, se debe hacer una configuración en el servidor para poner directivas de autentificación en estos archivos. La directiva AllowOverride, especifica cuáles directivas pueden ser colocadas en los archivos de configuración por directorios. Para la autentificación, necesita una directiva AllowOverride como la siguiente: AllowOverride AuthConfig

6.4.

P UESTA EN FUNCIONAMIENTO

Para proteger con contraseña un directorio se tiene que crear un archivo de contraseñas y se utiliza htpasswd de Apache la cual se encuentra en el directorio bin de cualquier sitio en que haya instalado Apache. Para crear el archivo escriba: *********************************************************** htpasswd -c /usr/local/apache/passwd/passwords rbowen *********************************************************** htpasswd pedirá la contraseña dos veces para confirmarla: # htpasswd -c /usr/local/apache/passwd/passwords rbowen New password: mypassword

Instituto Tecnológico de Mexicali

52

Re-type new password: mypassword Adding password for user rbowen ************************************************************* Si el htpasswd no esta en la ruta entonces se tiene que escribir la ruta completa en el archivo para ejecutarlo, después configuramos el servidor para que solicite una contraseña e indicarle que usuarios tendrán acceso. Otra forma de hacer esto es editando el archivo httpd.conf o con un archivo .htaccess. Por ejemplo, si se desea proteger el directorio /usr/local/apache/htdocs/secret, se deben usar las directivas, ya sea colocándolas en el archivo /usr/local/apache/htdocs/secret/.htaccess, o en httpd.conf dentro de una sección . La directiva AuthType: Selecciona el método que se va a usar para autentificar al usuario. El método más común es Basic la cual envía la contraseña desde el cliente hasta el navegador sin encriptar. Otro método de autentificación es Digest, este método está implementado en mod_auth_digest y es mucho más seguro. La directiva AuthName: Establece el Dominio a usar en la autentificación. El cliente presenta la información al usuario para la contraseña, después el cliente lo usa para determinar la contraseña que enviara una área autentificada. Por razones de seguridad, el cliente siempre pedirá de nuevo la contraseña cuando cambie el nombre de la máquina del servidor. La directiva AuthUserFile: Establece la ruta al archivo de contraseña creada con htpasswd. Apache tiene la capacidad de almacenar la información del usuario en archivos rápidos de bases de datos. La directiva Require: proporciona la parte de la autorización del proceso estableciendo el usuario al que se le permite acceder a ese área del servidor.

Instituto Tecnológico de Mexicali

6.5.

53

ACCESOS M ULTIPLES .

Para permitir el acceso a más de una persona se utiliza la directiva AuthGroupFile. Crearemos un archivo de grupo para asociar nombres de grupo con una lista de usuarios que pertenecen a ese grupo. *********************************************************************** El contenido del archivo será: GroupName: rbowen dpitts sungo rshersey Lo anterior solo es un ejemplo de miembros del grupo separados por espacios. *********************************************************************** Para agregar un usuario a un archivo de contraseñas ya existente: htpasswd /usr/local/apache/passwd/passwords dpitts Aquí el nuevo usuario será agregado al archivo existente, en lugar de crear un nuevo archivo. *********************************************************************** Ahora a modificar el archivo .htaccess : AuthType Basic AuthName "By Invitation Only" AuthUserFile /usr/local/apache/passwd/passwords AuthGroupFile /usr/local/apache/passwd/groups Require group GroupName *********************************************************************** Una vez hecho esto, cualquiera que esté en el grupo GroupName, y en el archivo password, tendrá acceso, siempre y cuando escriba la contraseña correcta.

Capítulo 7 S ERVIDOR W EB EN EL I.T.M. 7.1.

D EBIAN

Una de mis propuestas en cuanto al Sistema Operativo para este proyecto es Debian y uno de mis motivos es por el ahorro económico, hay que tener en cuenta que el precio de una licencia es muy alto. Además, que este Sistema Operativo funciona en casi todas la computadoras personales, incluyendo algunos modelos antiguos. Otra de las razones por las cuales llegue a la decisión de proponer Debian es por que su instalación es muy sencilla, la instalación la podemos hacer directamente desde un CD, DOS o discos flexibles incluso a través de Internet. Los archivos FTP se actualizan diariamente y una de las ventajas que tiene Debian es que se puede estar actualizando de una manera muy sencilla, sólo se tiene que ejecutar apt-get update y apt-get upgrade desde la consola, es necesario estar actualizándolos cada semana. Debian te brinda seguridad y privacidad ya que en Linux no hay virus, que afectan casi exclusivamente a los sistemas Windows. El hecho de que el código fuente esté disponible para todo el mundo, garantiza el derecho de cualquier persona o empresa a continuar su desarrollo.

54

Instituto Tecnológico de Mexicali

7.2.

55

A PACHE

Las diferentes plataformas y los diferentes entornos, hacen que sean necesarias diferentes características , o que una misma característica se utilice de diferente manera para obtener una mayor eficiencia. Por obvias razones, mi propuesta para resolver esta situación es instalando el Servidor Web APACHE en el Instituto Tecnológico de Mexicali. Como ya lo he mencionado anteriormente en este proyecto, Apache esta diseñado para que su configuración sean de forma modular y su diseño le permite funcionar en una gran variedad de plataformas adaptándose a distintos entornos, la ventaja de Apache es que tu puedes elegir que módulos se van a cargar, al compilar o al ejecutar el servidor. Otra de las razones por el cual elegí el servidor Web Apache, es por que Apache es de código fuente abierto gratuito sin tener que pagar por licencias, como código fuente abierto quiero decir, que si quiero ver que es lo que estoy instalando como servidor , lo puedo saber. Para la instalación de Apache también es muy sencillo, solo se tiene que escribir desde la consola apt-get apache2. Con Apache es posible tener un Control de Acceso para evitar que personas tengan acceso a datos o recursos, una manera de llevar acabo esto es con el acceso restringido por usuario y password creando un fichero, el cual tendrá los usuarios y los passwords que tendrán acceso a dichos recursos y definiendo las zonas a restringir. Para permitir el acceso a mas de una persona se usa la directiva AuhtGroupFile y tendríamos que crear un archivo de grupo para asociar los nombres de grupo con una lista de usuarios que pertenecen a ese grupo. Además ya se cuenta con la versión Apache 2.0, la cual contiene muchas mejoras y novedades convirtiéndolo en el mejor servidor de páginas Web y lo demuestra al ser el líder y número uno en los últimos años.

Instituto Tecnológico de Mexicali

7.3.

56

PHP

Como ya sabemos PHP se trata de un lenguaje para crear aplicaciones para servidores, o creación de contenido dinámico para sitios Web. Incluir PHP en el proyecto es una buena idea ya que este permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, Oracle, ODBC, entre otros. Estos son algunos de los principales usos que se le daran al PHP : Programación de páginas Web dinámicas usando bases datos MySQL, incluyendo ODBC, para ampliar las posibilidades de conexión. Programación en consola, al estilo de Perl o Shell scripting. Creación de aplicaciones gráficas independientes del navegador, por medio de PHP y GTK (GIMP Tool Kit). Como ventajas de PHP puedo mencionar que se trata de un lenguaje multiplataforma con la capacidad de conectarse con la mayoría de las bases de datos que se utilizan en la actualidad. Es capas de leer y manipular datos desde diversas fuentes y es libre, lo cual es de fácil acceso para todos.

7.4.

H OST VIRTUAL BASADO EN NOMBRES:

Utilizando diferentes nombres de hosts o diferentes IP el servidor Web puede contener diferentes sitios Web. El host virtual basado en IP necesita tener diferentes direcciones IP para cada host. Por esta razón propongo usar host virtual basado en nombres, de esta manera el servidor atenderá al nombre de host en las cabeceras de HTTP que especifica el cliente, así, una sola dirección IP puede ser compartida por muchos sitios Web diferentes. El host virtual basado en nombres es muy sencillo, solo se necesita configurar el servidor de DNS para que localice la dirección IP correcta y configu-

Instituto Tecnológico de Mexicali

57

rar Apache para que reconozca los diferentes nombres de host. Es fácil mantener varios sitios Web con diferentes nombres de dominio, por ejemplo, supongamos que tenemos el dominio: www.dominio.tld y queremos añadir el host virtual www.otrodominio.tld, con la misma dirección IP. Entonces, lo haremos de la siguiente manera: NameVirtualHost 111.22.33.44 ServerName www.dominio.tld DocumentRoot /www/dominio ServerName www.otrodominio.tld DocumentRoot /www/otrodominio (para mayor información mirar la sección 5.2.2).

7.5.

SSL

Es una buena idea pensar en SSL, ya que ofrece servicios de seguridad cifrando los datos intercambiados entre el servidor y cifrando la clave de sesión. Cada vez que se haga una transacción se va a generar una clave de sesión distinta, de tal manera que cuando una transacción es atacada, no habrá problema ya que la siguiente transacción será con una clave distinta. Como ventajas tenemos que el SSL proporciona cifrado de datos, autenticación de servidores, integridad de mensajes y autenticación de cliente para conexiones TCP/IP. El Protocolo SSL Handshake utiliza el Protocolo SSL Record y el puerto abierto para comunicarse de forma segura con el cliente. Durante el protocolo SSL Handshake, el cliente y el servidor intercambian mensajes para negociar las mejoras de seguridad. Una manera de explicarlo es así:

Instituto Tecnológico de Mexicali

58

Se llega a un acuerdo sobre el conjunto de algoritmos y mantener la autenticación. Realizar una Intercambio de claves para intercambiar información, de tal forma que al final ambas deben de tener o compartir una clave maestra. La producción de clave de sesión será la usada para cifrar los datos intercambiados. La verificación del servidor es sólo cuando se usa RSA como algoritmo de intercambio de claves, y sirve para que el cliente autentique al servidor. En la autenticación del cliente, el servidor solicita al cliente un certificado X.509. Finalmente ya se puede comenzar la sesión segura.

7.6.

P ROPUESTA DE UN NUEVA PAGINA W EB

Antes de empezar a diseñar el sitio Web hay que tener claro cuál va a ser el propósito del sitio, sus contenidos y la audiencia de la que dispondrá. En este caso nuestra pagina Web será enfocado un sitio que pueda resolver las necesidades del Instituto Tecnológico de Mexicali. Para la pagina Web de un centro educativo es conveniente utilizar la estructura de árbol, con una presentación, unas secciones, que darían paso a las páginas que elabore cada departamento. En nuestra pagina los menús de navegación estarán donde las personas los necesitan permitiendo les conocer en qué lugar de la Web se encuentran. Mi propuesta para la página del Instituto Tecnológico de Mexicali la doy a conocer en los siguientes puntos: 1. Imagen del Instituto Tecnológico de Mexicali.

Instituto Tecnológico de Mexicali

59

Para mi es muy importante pensar en la imagen que se quiere proyectar, creando una página mas formal y coherente con la actividad del centro educativo. Una forma de hacerlo es darle más importancia a la página de portada, la cual debe ser atractiva y funcional, para que el visitante comprenda rápidamente qué es lo que ofrece dicha página y sienta curiosidad por saber cual es el contenido. 2. Información y Contenidos. Para la información y los contenidos de la página es mejor utilizar colores discretos y no mezclar diferentes tipos y tamaños de letra en cada página. Cuidar que las imágenes que se pongan de fondo no cubran a la información o a los contenidos ya que podrían dificultar la lectura de estos. 3. Navegación fácil La navegación a través de la página debe ser fácil y el navegante debe saber dónde se encuentra en cada momento. 4. Rapidez. Cuando una página tarda en aparecer en la pantalla es por que tiene muchas animaciones, imágenes, gráficas, etc. que sólo hacen mas lenta la navegación. Yo pondría imágenes pero no deforma exagerada, en ocasiones estar esperando que una página se cargue resulta molesto. 5. Información actualizada. Aquí no hay mucho que explicar, es muy importante mantener la página al día actualizando constantemente la información. Una página de un centro educativo o cualquier otra página con información obsoleta es lo peor que puede haber.

Instituto Tecnológico de Mexicali

60

Es importante anunciar en la página principal, todas las novedades y eventos que surgirán en el centro educativo, de esta forma los alumnos estarán siempre enterados de dichos eventos.

Figura 7.1: Propuesta pagina Web

Capítulo 8 CONCLUSIONES y T RABAJO F UTURO 8.1.

S ERVIDOR W EB

Dado el análisis hecho, puedo concluir lo siguiente: Apache "NO" solo es el servidor Web excelente, la forma en que esta configurado hacen que cada vez mas servidores confíen en este programa, además está diseñado para ser un servidor Web potente y flexible el cual funciona en una gran cantidad de plataformas y entornos. Además como Apache es una tecnología de código fuente abierto me permitió ver que es lo que estaba instalando como servidor, sin ningún secreto. Comparando este servidor Web con los demás servidores me dí cuenta que Apache es sin duda el mejor servidor de paginas Web, y lo demuestra al ser el líder y numero uno en los últimos años (60 % del total de servidores http de Internet.)

8.2.

P ERO EL TRABAJO NO A CONCLUIDO AQUÍ

La práctica ha constituido una dificultad para la construcción de este proyecto ya que no sólo se requiere dedicar muchas horas de trabajo, sino también un 61

Instituto Tecnológico de Mexicali

62

período de adaptación y aprendizaje previos en los diversos aspectos del servidor Apache. Sin embargo, esta desventaja se ha convertido en una ventaja para aquellas personas que continúen con mi proyecto ya que en este dejo plasmadas todas las bases y las características del servidor Web Apache así como las herramientas necesarias para su configuración.

Bibliografía [1] IANASchemes, www.iana.org. [2] T. Berners-Lee, R. Fielding, L. Masinter, URI, Uniform Resource Identifier. Internet Engineering Task Force, gbiv.com/protocols/uri/rev-2002/draftfielding-uri-rfc2396bis-07.html, 18 de Octubre 2004. [3] Carlos Castillo, Hypermedia. 1045.html, 2004.

www.tejedoresdelweb.com/307/article-

[4] Mercedes Franco Calvo, Optimizaciòn de servidores Web Analisis y Estadisticas. Osborne/McGraw-Hill, 2004. [5] Ciberaula Villalobos, Apache. Ciberaula, Asociación Española de Internet, 2006. [6] Modulos. Apache Software Foundation, http://www.apache.org/, 2006. [7] Web Semantica. W3C, http://www.w3c.es/Divulgacion/Guiasbreves/WebSemantica, 29/03/2006. [8] José Angel de Bustos Pérez, Archivos Importantes para Apache. Software Foundation, www.augcyl.org/glol/apache2.html, Agosto 1998. [9] L. Masinter, RFC397, The data URL scheme. Internet Engineering Task Force, www.ietf.org/rfc/rfc2397.txt, Agosto 1998.

63

Instituto Tecnológico de Mexicali

64

[10] R. Tobin, D. Hollander, A. Layman., XMLNS. W3C, www.w3.org/TR/xmlnames11/, Febrero 04 2004. [11] J. Gettys, J. Mogul, H. Frystyk, L. Masinter, Berners-Lee,RFC2616. Internet Engineering www.ietf.org/rfc/rfc2616.txt, Junio 1999.

P. Leach, T. Task Force,

[12] L. Masinter, H. Alvestrand, D. Zigmond, R. Petke, RFC2718, Esquemas URL. Internet Engineering Task Force, www.ietf.org/rfc/rfc2718.txt, Noviembre 1999.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF