Arquitectura Web: Servidor Web Apache

cesareox » Docencia » DFSI » Arquitectura Web: Instalar un Servidor Web (Apache)

Esta unidad pretende enseñar la configuración básica de un servidor Web. Se particularizará para el servidor Web Apache, pero podrá utilizarse cualquier software servidor Web. Se realizará la configuración y mantenimiento básico del servidor

Objetivos

Indice de Contenidos

  1. Servidor Web
    1. ¿Qué es? Servidor HTTP
    2. Para qué sirve: servir peticiones HTTP (por ejemplo páginas HTML, pero no exclusivamente):
    3. Protocolo HTTP
      1. NO orientado a conexión (no tiene memoria)
      2. Códigos de estado del protocolo: series 2,3,4 y 5
    4. Plan de Trabajo: qué necesito, software necesario (versión), módulos y documentación
    5. Software Servidor Web: Apache, MS IIS, Zeus, Sun Java Web Server, Aolserver, etc
    6. Programación y Publicación Web
      1. Páginas Estáticas y Dinámicas (con módulos añadidos)
      2. Aplicaciones lado cliente (client-side) o lado servidor (server-side)
    7. Arquitectura de un Servicio WebMail como ejemplo
  2. Instalación y Configuración Básica:
    1. Servidor Web Apache: versiones: 2.2.4, 2.0.59 y 1.3.37
    2. Instalación
      1. Descargarlo (Página Oficial o desde el Colegio)
      2. Cómo trabajar con los códigos fuente (tar, gz, bzip). Leer: README, INSTALL, etc
      3. Instalación: configuración (./configure), compilación (make), instalación (make install). Hay que añadirle las opciones necesarias en configure (ejecutar ./configure --help)
      4. Estructura de Directorios (algunos)
        1. Archivos de Configuración: conf
        2. Ejecutables: bin
        3. Documentación/Manual: manual
        4. Archivos de Incidencias (log): logs
        5. Raíz del Servidor web: htdocs
      5. Revisar Permisos y Acceso al ejecutable (variables PATH)
    3. Configuración Básica
      1. Configuración: httpd.conf. Modificar la Directiva Listen
      2. Arrancar y Parar y Reiniciar :
        1. Script: apachectl
        2. Utilizando el comando httpd, y para parar utilizar kill. PID en cat apache.pid
        3. Ejecución Automática (inittab, init.d/rc#, daemontools, etc)
      3. Probar que está funcionando: acceso con navegador, ver procesos (padre e hijos) y parar/reiniciar
    4. Probar la Instalación
      • Acceso con navegador: poner la URL
      • Acceso Telnet: telnet direccion_servidor puerto_Web. Ejecutar HTTP, por ejemplo HEAD / HTTP/1.0 y dos saltos de carro.
  3. Cómo se configura Apache: las directivas
    1. Sintaxis de las Directivas:
      1. Description: Descripción de qué hace la directiva
      2. Sintaxis: Directiva y Valor ( URL, URL-path, file-path, directory-path,filename,regex,MIME-type)
      3. Default. Valor si no se especifica ninguno
      4. Context. Contexto en el que es válida la directiva. Generalmente server config o directory
      5. Override
      6. Status. Core, MPM, Base, Extension, Experimental
      7. Module
      8. Compatibility
    2. Ejemplo
      		Directiva Directory
      		Descripción:	Engloba a un grupo de directivas que se aplicarán solamente
      al directorio del sistema de ficheros especificado y a sus subdirectorios Sintaxis: <Directory directory-path> ... </Directory> Contexto: server config, virtual host Estado: Core Módulo: core
      		DocumentRoot Directive
      		Description:	Directory that forms the main document tree visible from the web
      		Syntax:	DocumentRoot directory-path
      		Default:	DocumentRoot /usr/local/apache/htdocs
      		Context:	server config, virtual host
      		Status:	Core
      		Module:	core
      	      
      		Alias Directive
      		Description:	Maps URLs to filesystem locations
      		Syntax:	Alias URL-path file-path|directory-path
      		Context:	server config, virtual host
      		Status:	Base
      		Module:	mod_alias
      	      
    3. Proceso de Configuración:
      • Encontrar la Directiva que necesito
      • Modifico configuración y Reviso (apachectl configtest)
      • Reinicio Servidor con nueva configuración
    4. Ejemplos de Directivas:
  4. Revisión de Logs
    • Control de accesos y errores
    • Archivos de Log en $APACHE_HOME/log:
      • Log de accesos: access_log
      • Log de errores: error_log
    • Sintaxis de access_log: Formato CLF ( Common Log Format)
    • Agente de Usuario (User Agent): lista
    • Revisión de logs:
      • Utilizar comandos: (unix) more, tail, head, cat, grep, etc
      • Scripts a medida (errores, problemas, accesos una IP, etc)
      • Usar Software (Web Analysis Software)
  5. Autenticación y Autorización:
    1. Autenticación, Autorización y Control de Acceso (en Apache)
    2. Diferentes Alternativas: Basada en Host / BD Usuarios / Sesión
    3. Autenticación Basada en Host (mod_authz_host). Directivas:
  6. Autenticación basada en usuario/clave (mod_auth_basic):
    1. Arquitectura del Sistema:
    2. Ejemplo (Manual Apache):
  7. Extensión de la funcionalidad del servidor: Módulos
    1. Qué son y para qué sirven.
    2. Hay módulos según la versión de apache: 1.x, 2.0.x, 2.2.x
    3. Ver módulos instalados: opción -l (o -M desde 2.2) de httpd
    4. Cómo se añaden y cómo se configuran
      1. Instalación de una nueva funcionalidad
        1. Buscar el módulo que me interesa
        2. Revisar las necesidades de ese módulo (el intérprete externo del lenguaje, la base de datos, etc )
        3. Instalar el módulo (desde el código fuente). Revisar Instalación (depende mucho del módulo)
        4. Modificar Archivo de configuración de Apache:
          • Revisar que carga el módulo. Directiva LoadModule)
          • Revisar la extensión/acción. Directiva AddType
        5. Reiniciar el Servidor
    5. Buscar Módulos: Modules Search
  8. Páginas Dinámicas (Instalar Módulos):
    • Tipos (CGI, API Server, Aplicaciones, módulo)
    • Instalar PHP:
      • Revisar Especificaciones (Versiones, etc)
      • Recompilar Apache (habilitar carga de módulos)
      • Descargar PHP y configurarlo
      • Configurar Apache: cargar módulo, añadir extensión
    • Documentación : Oficial, Artículo, 1, 2

Actividades

Tiempo Estimado

4 semanas

Recursos a Utilizar

Enviar un comentario


Cesareo