Servidores WEB

LA WORLD WIDE WEB

Páginas web

  • Consiste en un archivo HTML base que incluye referencias a varios objetos
  • Los objetos pueden ser archivos HTML,imágenes,archivos de audio,script,etc.
  • Cada objeto se puede direccionar mediante una URL

  • El contenido puede ser de diferentes tipos: texto,multimedia,etc.
  • La reproducción o visualización requiere de otros complementos añadidos al navegador y que se integran de forma transparente al usuario

  • Se pueden ejecutar aplicaciones complementarias que aumentan su funcionalidad

Aplicaciones que se ejecutan en el cliente web

  • Se ejecutan directamente en el equipo del usuario
  • El servidor envía el código al navegador y este lo ejecuta
  • El navegador debe ser capaz de ejecutarlo (a menudo requiere de la instalación de extensiones)

Aplicaciones que se ejecutan en el servidor

  • Suelen ser en PHP,Perl,Python,etc
  • Al ejecutarse generan un código HTML que es enviado al navegador,este lo interpreta y lo muestra al usuario

Estructura de la WWW

  • Es un entramado de documentos escritos en un formato de texto llamado hipertexto
  • Hipertexto es un sistema de organización de la información basado en la posibilidad de moverse por dentro de un texto y hacia otros textos diferentes mediante palabras clave.
  • El más conocido es HTML (Hyper-text-markup language)

  • La estructura está formada por 3 elementos esenciales

-Nodos: unidades básicas que contienen información

-Enlaces: interconectan los nodos vinculando segmentos de información

-Anclajes: se utilizan para marcar el inicio y destino de cada enlace

  • Todos los elementos permiten acceder a la información a través de la navegación entre páginas

DIRECCIONES URL

URL

  • Es una dirección que permite encontrar y acceder a un objeto concreto en internet
  • Está formada por una secuencia de caracteres que sigue una determinada estructura
  • No es obligatorio especificar todos los componentes de la URL,en caso de no hacerlo el navegador presupone un valor por defecto
  • Ejemplo,si no especificamos el protocolo se entenderá que es HTTP.Si no especificamos un puerto, será en puerto 80

  • La URL es una cadena de texto formada por:

-Protocolo de comunicaciones

-Host o IP

-Puerto

-Ruta

-Cadena query

-Fragmento

URL Según diferentes protocolos

PROTOCOLO HTTP

HTTP

  • Establece un protocolo para el intercambio de documentos de hipertexto y contenido multimedia en Internet
  • Fue desarrollado por la W3C y la IETF en 1999 a traves de la especificación RFC 2616
  • Las versiones de HTTP son HTTP/1.0,1.1,1.2 y 2

Las principales características de HTTP son:

  • Utiliza una estructura cliente/servidor.Los servidores alojan la página web y los clientes acceden a ella
  • Para visualizar los datos a través de HTTP se requiere un navegador web
  • Las páginas se pueden ver en cualquier dispositivo

Las principales características de HTTP son:

  • Para la comunicación se establece una conexión TCP a través del puerto 80,todos los servidores web escuchan en el mismo puerto
  • La comunicación se basa en mensajes de petición y respuesta,para cada página que se acceda se crea una petición y el servidor contesta con el contenido de la página
  • Se crea una petición y respuesta por cada objeta que contiene la página

Clientes y servidores

Clientes web:

  • Máquinas que acceden a la información en la web
  • Los clientes se conectan a la www utilizando un navegador o web browser,un software utilizado por el usuario final para acceder a la web

Servidor web:

  • Proporciona contenido web a través del protocolo HTTP

Qué es una página web

  • Consiste en un archivo HTML base que incluye referencias a un conjunto de objetos

-Páginas HTML, Imágenes JPEG

-Applets Java, Archivos de Audio

-Scripts (JavaScript), Hojas de estilos (CSS)

  • Los objetos están localizados en diferentes servidores de internet,una imagen o un video puede estar en otro servidor
  • Cada objeto se puede direccionar mediante una dirección URL diferente,que indica la ruta para llegar a él

Ejemplo de sesión

  • Es una secuencia de transacciones solicitud y respuesta
  • El funcionamiento básico de una sesión HTTP es:

-El usuario escribe una dirección en el navegador (cliente)

-El navegador realiza una consulta DNS para averiguar la dirección IP asociada a la URL

-Intenta establecer una conexión TCP al puerto 80

-Cuando esta conexión se ha establecido, el navegador envía la petición HTTP solicitando la URL


  • El cliente pide mediante una solicitud el recurso que necesita
  • El servidor contesta con un código de estado y el recurso que le ha pedido el cliente, si es que existe
  • Todo este proceso es transparente al usuario,que únicamente ve la carga de la página.Todo lo realiza el navegador


  • Cuando la página web contiene imágenes,scripts, u otros objetos externos, el navegador los pide uno por uno
  • En el ejemplo vemos que la página necesito:

-Una hoja CSS que definen la apariencia de la página

-Un archivo JavaScript que contendrá funciones para hacer que la página sea dinámica

-Una imagen en fromato png

PRÁCTICA

DIRECTORIO ARCHIVO COMANDO

Directorios importantes

Directorio contenedor de páginas

Por defecto se encuentran en /var/www/html/

Directorio de configuración

Mods

Mods disponibles /etc/apache2/mods-available/

Mods habilitados /etc/apache2/mods-enable/

Sitios virtuales

Sites available /etc/apache2/sites-available/

Sites enable /etc/apache2/sites-enabled/

Configuraciones locales

/etc/apache2/conf-available/

/etc/apache2/conf-enabled/

/etc/apache2/envars

Estado del servicio

systemctl restart/stop/status apache2 (reiniciar,parar,estado de apache)

apache2ctl restart

/etc/init.d/apache2 restart

service apache2 restart

Puertos y cortafuegos

Comprobación de puertos

Comprobar el estado con netstat -atunp | grep apache2

Configuración de puertos

El archivo de configuración es ports.conf

Listen indica que el servidor acepta peticiones entrantes solamente por los puertos que se especifiquen

Configuración de cortafuegos

El servidor escucha un puerto concreto, y tiene que poder atravesar el Firewall

Comprobamos que se crean 3 apps para Apache con ufw app list

Información de la configuración de app con ufw app info Apache

Sitios WEB

Sites habilitados

En /etc/apache2/sites-enabled/ vemos que existe un fichero que representa un enlace simbólico al que se encuentra en /etc/apache2/sites-available/

Activar o desactivar un site a2ensite <site> y a2dissite <site>

El archivo de configuración está ubicado en /etc/apache2/sites-available/

Crear nuestro propio site

Copiamos el site de ejemplo y ponemos el nombre de nuestro dominio.Modificaremos el archivo de configuración con nuestra información.

Crearemos una carpeta /var/www/SITIO WEB/ y copiaremos dentro un archivo HTML

Nos iremos a /etc/apache2/sites-enabled/ y habilitaremos nuestro site

Crear estructura de páginas WEB

Creamos archivos y carpetas dentro de /var/www/SITIO WEB/ para que cuando entremos en el servidor con la IP nos salga un índice con todo el contenido.

Secciones

Tipos de secciones

Hay dos tipos:

  • Las que se evalúan para cada petición
  • Y las que se evalúan solamente al inicio o reinicio del servidor

Sección directory

Solo se aplica a un directorio o subdirectorio específico,dentro de esta sección podemos incluir tantas directivas como queramos.

Podemos denegar el acceso a ciertos directorio al igual que las IP

Sección files

Se aplica a un archivo especificado sin tener en cuenta en qué directorio se encuentre

  • Por ejemplo denegar el archivo privado.html en cualquier carpeta
  • También podemos utilizar directory y files para referirse a archivos que se encuentra en un determinado lugar del sistema de archivos.

Sección location

Está relacionada con el espacio web y cambia la configuración para el contenido del espacio web.

Por ejemplo evitar que se acceda a cualquier URL que empiece por /privado

Sección ifmodule

Engloba directivas que se procesarán si el módulo dado como argumento se compila con apache2

Sección ifdefine

Engloba directivas que serán procesadas sólo si se cumple una determinada condición al iniciar el servidor

Directivas

Una directiva es una palabra clave seguida de uno o más argumentos que establecen su valor.Se pueden colocar en muchos sitios,generalmente se responde al considerar dónde desea que una directiva sea efectiva

Directiva ServerRoot

Indica el directorio raíz donde se almacenan los distintos ficheros que utiliza el servidor Apache

Conexiones persistentes

KeepAlive indica si se permiten o no las conexiones persistentes

Directiva DirectoryIndex

Aplicando esta directiva podemos indicar que página se puede mostrar.Puede indicar que muestre el archivo como el índice de directorio.

Opciones sobre directorios

LOGS

Consultar los LOGS

El registro de errores se encuentra en /var/log/apache2/error.log

Para ejecutar la orden tail -f /var/log/apache2/*.log

Conocer dónde se guardan los archivos de log

Los fichero de log se encuentran por defecto en /var/log/apache2/