Laboratorio de Redes de Computadores II TEL 242

35
L ab. Redes II L ab. Redes II Laboratorio de Redes de Computadores II WEB Laboratorio de Redes de Computadores II TEL 242

Transcript of Laboratorio de Redes de Computadores II TEL 242

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

WEB

Laboratorio de Redes de Computadores II

TEL 242

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

Servidor Web Apache

TEL-242

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

Servidor Apache Arquitectura

ArquitecturaTérminos y Definiciones

Configuración

ModeloMódulosEjemplo

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Apache 1.3• Apache 2.0 c/Prefork

• Muchos Hijos (cientos)�

• Cada hijo maneja sólo una conexión a la vez. Child

Parent

ChildChild

… muchos…

Modelo Clásico

ArquitecturaTérminos y Definiciones

Configuración

ModeloMódulosEjemplo

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Apache 2.0 Worker

• Pocos Children (decenas) �

• Cada hijo maneja muchas conexiones concurrentes.

Child

Parent

ChildChild

…pocos…threads

Modelo Multihilo (worker)�

ArquitecturaTérminos y Definiciones

Configuración

ModeloMódulosEjemplo

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Se ejecutan dentro del proceso httpd– mod_cgi

– mod_perl

– mod_php

– mod_python

– mod_tcl

– etc

Módulos internos

ArquitecturaTérminos y Definiciones

Configuración

Modelo MódulosEjemplo

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• El procesamiento se realiza fuera del contexto de httpd .

• Tomcat– mod_jk/jk2,

mod_jserv

• mod_proxy• mod_ssl

Parent

TomcatChild

ChildChild

Módulos externos

ArquitecturaTérminos y Definiciones

Configuración

Modelo MódulosEjemplo

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

Child

Parent

ChildChild …

Tomcat

DBmod_jkmod_rewritemod_phpmod_perl

Apache

Ejemplo

ArquitecturaTérminos y Definiciones

Configuración

Modelo MódulosEjemplo

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

Términos y Definiciones

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• HyperText Transfer Protocol

• Definido en la RFC2616

• Es un protocolo de capa 7 ISO/OSI

• Protocolo de red utilizado para comunicar

servidores web y clientes web

HTTP

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• HyperText Markup Language

NO CONFUNDIR:

HTML es un formato

de archivo y

HTTP es un protocolo.

HTML

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• El Navegador solicita peticiones (request) de páginas y el servidor web le envía la respuesta (Response) apropiada.

• Una vez recibida la página, la interpreta y la despliega en pantalla.

Navegador Servidor Web

Request

Response

Páginas

Interpreta el código HTMLenviado y muestra la páginaen pantalla

ComuniciónTCP/IP

Acceso a Disco

Funcionamiento (básico)�

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Para permitir otros tipos de contenidos, se idearon técnicas en ambos extremos de la comunicación.– CGI, php ...

– Javascript, activex, flash...

• El objetivo es entregar información dinámica y diferenciar aún más el servicio web de otros medios de comunicación en papel.

Funcionamiento

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• El cliente web es el encargado de ejecutar código en la

máquina del usuario.

• Son aplicaciones tipo “scripting” (no compiladas):

– el servidor proporciona el código de las aplicaciones al cliente y éste, mediante el navegador, las ejecuta.

• Es necesario, por tanto, que el cliente disponga de un

navegador con capacidad para ejecutar aplicaciones.

– OJO: Estas aplicaciones dependen del navegador �

Problemas!!!!!

Tecnologías del Cliente

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• En general, la ejecución de un mismo código interpretado ,

dará resultados distintos dependiendo del navegador.

Tecnologías del Cliente

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• “Common Gateway Interface”.

– CGI especifica un estándar para transferir datos entre el cliente y el

programa que reside en el servidor.

• El servidor ejecuta aplicaciones apropiadas y su salida

estándar la reenvía como respuesta al navegador.

– Debe cumplir con el protocolo, Si no, pueden ocurrir

errores.

Tecnologías del Servidor

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

Tecnologías del Servidor

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• El servidor ejecuta aplicaciones apropiadas y su salida

estándar la reenvía como respuesta al navegador.

– Debe cumplir con el protocolo.

– Si no, pueden ocurrir errores.

• Por ejemplo:

Tecnologías del Servidor

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• El servidor ejecuta aplicaciones apropiadas y su salida

estándar la reenvía como respuesta al navegador.

– Debe cumplir con el protocolo.

– Si no, pueden ocurrir errores.

• Por ejemplo:

Tecnologías del Servidor

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• El servidor ejecuta aplicaciones apropiadas y su salida

estándar la reenvía como respuesta al navegador.

– Debe cumplir con el protocolo.

– Si no, pueden ocurrir errores.

• Por ejemplo:

Header HTTPDefinido en la sección

14 de RFC2616

Tecnologías del Servidor

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Los SSI (Server Side Includes) son directivas insertadas en

páginas HTML

• Permite inserción de contenido generado dinámicamente en

las páginas web.

• Ejemplos:

<!--#echo var="LAST_MODIFIED" -->

<!--#include virtual="cabecera.html" -->

• Es necesario configurar el servidor web para permitir esta

característica.

Tecnologías del Servidor

ArquitecturaTérminos y Definiciones

Configuración

HTTPHTMLFuncionamientoTecnologías

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

Configuración del Servidor

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Es el proceso httpd principal.

• No maneja conexiones.

• Sólo crea y destruye procesos hijos.

Child

Parent

Child

Child

Sólo un padre

Proceso Padre

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Ejemplo:

Proceso Padre

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Se llaman “Server ” en

el archivo httpd.conf

• Es un proceso httpd

• Puede manejar uno o

más solicitudes

concurrentes.

Child

Parent

ChildChild …

Servers

Los “hijos” son el “servidor”

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Ejemplo:

Los “hijos” son el “servidor”

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Una conexión HTTP (P.e. Navegador).– Muchos navegadores abren múltiples conexiones

– Apache considera cada conexión en forma separada.

Web Browser Web Server(Apache)�

Cliente

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Normalmente se relaciona una URL a un

servidor web (máquina):

– www.elo.utfsm.cl � Máquina Servidor

• Pero en general, la relación es:

– URL � “Servidor Virtual” � Máquina Servidor

Relación URL - Servidor

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

Configuración de Apache

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Apache tiene 3 archivos de configuración:– httpd.conf

– access.conf

– srm.conf

• Observaciones:– Comentarios son las líneas que comienzan con el

símbolo #– Todo el resto es interpretado como instrucciones.

Archivos de Configuración

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Apache tiene 3 archivos de configuración:– httpd.conf

– access.conf

– srm.conf

• httpd.conf– Configura cómo el software se va a ejecutar

(usuario, puerto) y define datos administrativos (correo del encargado, archivo de registros, etc)�

Archivos de Configuración

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Apache tiene 3 archivos de configuración:– httpd.conf

– access.conf

– srm.conf

• access.conf– Tiene las directivas para configurar los permisos

de acceso a directorio y archivos del sitio web.

Archivos de Configuración

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• Apache tiene 3 archivos de configuración:– httpd.conf– access.conf– srm.conf

• srm.conf– Configura los recursos del sistema.– Qué va a ofrecer y cómo lo va ha hacer.

Archivos de Configuración

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

• StartServers– Número de procesos hijos que se crean al inicio.

• MinSpareServers• MaxSpareServers

– Mínimo y máximo de procesos hijos en cualquier instante de tiempo.

• MaxClients– Máximo de clientes que se permiten en cualquier

instante de tiempo.• MaxRequestsPerChild

– Máximo número de solicitudes antes que el hijo sea terminado y reemplazado.

Directivas

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache

Lab.

Red

es II

Lab.

Red

es II

Laboratorio de Redes de Computadores II

<VirtualHost *>

DocumentRoot /home/webmaster/ingenieriatelematica.cl

ServerName www.ingenieriatelematica.cl

ServerAdmin [email protected]

ErrorLog /usr/local/apache/logs/error_log_tel

CustomLog /usr/local/apache/logs/access_log_tel common

user web

group web

<Directory "/home/webmaster/ingenieriatelematica.cl">

Options Indexes FollowSymLinks MultiViews

#AllowOverride None

AllowOverride AuthConfig

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

Ejemplo

ArquitecturaTérminos y Definiciones

Configuración

ProcesosConfiguración de Apache