Arquitectura Web: Instalar un Servidor Web

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

Este curso buscará enseñar la instalación y configuración básica de un servidor Web. En particular para el servidor Web Apache, pero podrá utilizarse cualquier software servidor Web.

Objetivos

Contenidos de las Clases

Introducción
Instalación
Directivas de Configuracion
Revision de Logs
Control de Acceso
Autenticación con Usuarios
Módulos
Paginas Dinámicas
  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

Dedicación al Curso

Unas 30 horas, equivalentes a un crédito ECTS

Recursos a Utilizar

Enviar un comentario


Cesareo