II R ed es WEB La b. Laboratorio de Redes de Computadores II TEL 242 Laboratorio de Redes de Computadores II II ed es R Servidor Web Apache La b. TEL-242 Laboratorio de Redes de Computadores II Modelo Módulos Ejemplo II Arquitectura Términos y Definiciones Configuración ed es Servidor Apache La b. R Arquitectura Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Modelo Módulos Ejemplo ed es Parent R • Apache 1.3 • Apache 2.0 c/Prefork II Modelo Clásico La b. • Muchos Hijos (cientos) • Cada hijo maneja sólo una conexión a la vez. Child Child Child … muchos… Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Modelo Módulos Ejemplo II Modelo Multihilo (worker) ed es • Apache 2.0 Worker Parent La b. R • Pocos Children (decenas) • Cada hijo maneja muchas conexiones concurrentes. Child Child Child threads …pocos… Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Modelo Módulos Ejemplo II Módulos internos R La b. – mod_cgi – mod_perl – mod_php – mod_python – mod_tcl – etc ed es • Se ejecutan dentro del proceso httpd Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Modelo Módulos Ejemplo R ed es • El procesamiento se realiza fuera del contexto de httpd. II Módulos externos La b. • Tomcat – mod_jk/jk2, mod_jserv Parent Child Child Child Tomcat • mod_proxy • mod_ssl Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Modelo Módulos Ejemplo II Ejemplo R Parent ed es Apache La b. Child Child Child mod_jk mod_rewrite mod_php mod_perl Tomcat … DB Laboratorio de Redes de Computadores II HTTP HTML Funcionamiento Tecnologías ed es II Arquitectura Términos y Definiciones Configuración La b. R Términos y Definiciones Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías II HTTP R ed es • HyperText Transfer Protocol • Definido en la RFC2616 • Es un protocolo de capa 7 ISO/OSI La b. • Protocolo de red utilizado para comunicar servidores web y clientes web Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías II HTML NO CONFUNDIR: R HTML es un formato ed es • HyperText Markup Language La b. de archivo y HTTP es un protocolo. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías Response Servidor Web Páginas Comunición TCP/IP Acceso a Disco La b. Interpreta el código HTML enviado y muestra la página en pantalla R Navegador ed es Request II Funcionamiento (básico) • 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. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías II Funcionamiento ed es • Para permitir otros tipos de contenidos, se idearon técnicas en ambos extremos de la comunicación. La b. R – 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. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías Tecnologías del Cliente máquina del usuario. ed es II • El cliente web es el encargado de ejecutar código en la • Son aplicaciones tipo “scripting” (no compiladas): R – el servidor proporciona el código de las aplicaciones al cliente y éste, mediante el navegador, las ejecuta. La b. • Es necesario, por tanto, que el cliente disponga de un navegador con capacidad para ejecutar aplicaciones. – OJO: Estas aplicaciones dependen del navegador Problemas!!!!! Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías Tecnologías del Cliente II • En general, la ejecución de un mismo código interpretado, La b. R ed es dará resultados distintos dependiendo del navegador. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías ed es • “Common Gateway Interface”. II Tecnologías del Servidor – CGI especifica un estándar para transferir datos entre el cliente y el programa que reside en el servidor. R • El servidor ejecuta aplicaciones apropiadas y su salida La b. estándar la reenvía como respuesta al navegador. – Debe cumplir con el protocolo, Si no, pueden ocurrir errores. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías La b. R ed es II Tecnologías del Servidor Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías II Tecnologías del Servidor • El servidor ejecuta aplicaciones apropiadas y su salida ed es estándar la reenvía como respuesta al navegador. – Debe cumplir con el protocolo. La b. • Por ejemplo: R – Si no, pueden ocurrir errores. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías II Tecnologías del Servidor • El servidor ejecuta aplicaciones apropiadas y su salida ed es estándar la reenvía como respuesta al navegador. – Debe cumplir con el protocolo. La b. • Por ejemplo: R – Si no, pueden ocurrir errores. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías II Tecnologías del Servidor • El servidor ejecuta aplicaciones apropiadas y su salida ed es estándar la reenvía como respuesta al navegador. – Debe cumplir con el protocolo. La b. • Por ejemplo: R – Si no, pueden ocurrir errores. Header HTTP Definido en la sección 14 de RFC2616 Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración HTTP HTML Funcionamiento Tecnologías II Tecnologías del Servidor páginas HTML ed es • Los SSI (Server Side Includes) son directivas insertadas en • Permite inserción de contenido generado dinámicamente en R las páginas web. La b. • Ejemplos: <!--#echo var="LAST_MODIFIED" --> <!--#include virtual="cabecera.html" --> • Es necesario configurar el servidor web para permitir esta característica. Laboratorio de Redes de Computadores II Procesos Configuración de Apache La b. R ed es II Arquitectura Términos y Definiciones Configuración Configuración del Servidor Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache ed es La b. R Parent Sólo un padre • Es el proceso httpd principal. • No maneja conexiones. • Sólo crea y destruye procesos hijos. II Proceso Padre Child Child Child … Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache La b. R • Ejemplo: ed es II Proceso Padre Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache • Se llaman “Server” en ed es II Los “hijos” son el “servidor” Parent el archivo httpd.conf R • Es un proceso httpd La b. • Puede manejar uno o más solicitudes Child Child Child … concurrentes. Servers Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache La b. R • Ejemplo: ed es II Los “hijos” son el “servidor” Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache Web Server (Apache) La b. R Web Browser ed es II Cliente • Una conexión HTTP (P.e. Navegador). – Muchos navegadores abren múltiples conexiones – Apache considera cada conexión en forma separada. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache II Relación URL - Servidor ed es • Normalmente se relaciona una URL a un servidor web (máquina): R – www.elo.utfsm.cl Máquina Servidor La b. • Pero en general, la relación es: – URL “Servidor Virtual” Máquina Servidor Laboratorio de Redes de Computadores II Procesos Configuración de Apache ed es II Arquitectura Términos y Definiciones Configuración La b. R Configuración de Apache Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache II Archivos de Configuración R La b. – httpd.conf – access.conf – srm.conf ed es • Apache tiene 3 archivos de configuración: • Observaciones: – Comentarios son las líneas que comienzan con el símbolo # – Todo el resto es interpretado como instrucciones. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache II Archivos de Configuración R La b. – httpd.conf – access.conf – srm.conf ed es • Apache tiene 3 archivos de configuración: • httpd.conf – Configura cómo el software se va a ejecutar (usuario, puerto) y define datos administrativos (correo del encargado, archivo de registros, etc) Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache II Archivos de Configuración R La b. – httpd.conf – access.conf – srm.conf ed es • Apache tiene 3 archivos de configuración: • access.conf – Tiene las directivas para configurar los permisos de acceso a directorio y archivos del sitio web. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache II Archivos de Configuración R La b. – httpd.conf – access.conf – srm.conf ed es • Apache tiene 3 archivos de configuración: • srm.conf – Configura los recursos del sistema. – Qué va a ofrecer y cómo lo va ha hacer. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache II Directivas ed es • StartServers – Número de procesos hijos que se crean al inicio. • MinSpareServers • MaxSpareServers La b. R – 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. Laboratorio de Redes de Computadores II Arquitectura Términos y Definiciones Configuración Procesos Configuración de Apache II Ejemplo <VirtualHost *> ed es 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 R user web group web <Directory "/home/webmaster/ingenieriatelematica.cl"> La b. Options Indexes FollowSymLinks MultiViews #AllowOverride None AllowOverride AuthConfig Order allow,deny Allow from all </Directory> </VirtualHost> Laboratorio de Redes de Computadores II