Comienza Contenido

Arquitectura Web: Instalar un Servidor Web

Este curso buscará enseñar la instalación y configuración básica de un servidor Web. Se concreta para el servidor Web Apache, pero podrá utilizarse cualquier software servidor Web. Se recomienda Aolserver o Ngnix

Objetivos

  • Entender el funcionamiento del protocolo HTTP
  • Aprender a instalar y configurar un servidor web
  • Realizar Tareas de Mantenimiento del Servidor

Clases

  1. Servidor Web
  2. Instalación y Configuración Básica:
    1. Servidor Web Apache: versiones: 2.2.9, 2.0.63 y 1.3.4
    2. Instalación
      1. Descargarlo
      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:
      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

  • Instalación y Configuración Básica:
    1. Buscar Información sobre el servidor web (valdría cualquiera, ante la duda Apache) y realizar la instalación desde el código fuente
    2. Instalar Apache en zona de usuario (sin ser root) en $HOME/programas/apache (Revisar parámetro PREFIX)
    3. Configuración Básica:
      1. Instalar Apache, en modo usuario, sirviendo mi página personal, con los datos del servidor personalizados (Revisar directivas Listen y DocumentRoot)
      2. Consultar documentación de alguna directiva: Listen, DocumentRoot, ServerAdmin, ServerName
      3. Configurar directorio con Directiva Directory
  • Usar Directivas
    1. Páginas Personalizadas. Para errores 404 y 403
    2. /manual con documentacion Apache y /imagenes con las imágenes en /usr/share/images
    3. Buscar nuevas directivas. Pistas: Options, AddIcon, AddAlt, CustomLog, Redirect
    4. Revisar Archivos Log (Entender la Configuración básica)
    5. Uso de Software de Revisión de Estadísticas
  • Revisión de Logs:
    • Monitorear Logs (vía consola)
    • Explicar tres líneas diferentes de logs (dos códigos HTTP diferentes)
  • Configuración Avanzada
    1. Configurar Autenticación y Autorización (Basic) para dos directorios (dir1 y dir2) y tres usuarios (user1, user2, user3)
    2. Configurar Permisos en los Directorios (dir1 solo visualizar *.html)
  • Uso de Módulos Externos: Programa Hola Mundo en PHP sobre el servidor

Duración del Curso

El esfuerzo estimado del curso es de 1 crédito ECTS. Unas 30 horas de dedicación.

Recursos a Utilizar