laboratorio de redes de computadores ii tel 242
TRANSCRIPT
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 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