UT01. Implantación, configuración y administración de servidores web
2021-22

DESPLIEGUE DE APLICACIONES WEB
Implantación, configuración y administración de servidores web
Fundamentos de la web
La arquitectura World Wide Web (WWW) de Internet provee un modelo de programación sumamente poderoso y flexible, donde la presentación de los contenidos se hace con formatos estándar.
Estándares
El servicio web e Internet
-
Internet no es un nuevo tipo de red física, sino un conjunto de tecnologías que permiten interconectar redes muy distintas entre sí. Internet no es dependiente de la máquina ni del sistema operativo utilizado.
-
Es un método de interconexión general que sea válido para cualquier plataforma, sistema operativo y tipo de red.
-
La familia de protocolos que se eligieron para permitir que Internet sea una Red de redes es TCP/IP.

MODELO DE REFERENCIA TCP/IP
El protocolo HTTP
-
Permite realizar la transferencia de información entre un cliente web y un servidor web en Internet
- Versión más extendida actualmente es la versión HTTP/1.1
Características HTTP/1.1
- Es un protocolo del nivel de aplicación
- Es un protocolo sin estado - Petición --> Respuesta
- Peticiones y respuestas en formato texto
- No hay sesiones. Necesarias otras herramientas (Cookies)
Uso del Servicio HTTP
- GET: parámetros visibles en URL
- HEAD
- POST: parámetros ocultos
- PUT
- DELETE
Principales métodos (verbos) para peticiones a servidores web
HTTP vs HTTPS
- Se traduce el dominio DNS por una IP.
- Se busca en el servidor web que aloja la página solicitada el puerto 443 (80 para http)
- Se inicia una negociación SSL (emisión de certificados - establecimiento de un canal seguro de comunicaciones)
- Una vez verificado el certificado servidor, se realiza el proceso de petición HTTP y respuesta HTTP pero de forma cifrada.
HTTPS permite que la información viaje de forma segura entre el cliente y el servidor
Implantación de Arquitecturas web
Genéricamente, la arquitectura web es un modelo compuesto de 3 capas:
- Base de datos (MySQL, SQL Server, etc).
- Servidor de Aplicaciones (Apache, Tomcat, etc)
- Clientes del Servicio web (Navegadores)
Evolución de los servicios web
Está muy ligado al desarrollo de Internet, algunos de estos factores son:
- Contenido más dinámico (de fuentes diferentes, instantáneo).
- Ancho de banda menos costoso (servicios más pesados)
- Almacenamiento más barato
- Computación extendida (acceso desde diversos dispositivos).
Evolución de los servicios web
Está muy ligado al desarrollo de Internet, algunos de estos factores son:
- Web 1.0 (páginas estáticas).
- Web 1.5 (Primeras apps web, acceso a BBDD)
- Web 2.0 (enfocadas al usuario final)
- Web 2.5 (Redes sociales).
- Web 3.0 (IA, Big Data)
Tecnologías asociadas
A grandes rasgos se dividen en 2 tipos:
- Tecnologías del lado del Sevidor.
- Tecnologías del lado del Cliente.
Tecnologías asociadas (Servidor)
- CGI (Common Gateway Interface)
- ASP (Active Server Pages)
- PHP (Hypertext Preprocessor)
- Java
- JavaScript
Tecnologías asociadas (Cliente)
- HTML (HiperText Markup Language)
- CSS (Cascading Style Sheets)
- Java (applets)
- JavaScript
- VBScript (Visual Basic Scripting)
Tipos de Apps Web
- Página Web Estática (html, css, gif animados)
- Página Web Animada (Flash)
- Página Web Dinámica (PHP, ASP)
- Portal (email, foros, chat, buscadores)
- E-commerce (formas de pago, transportistas, etc)
- Gestor de Contenidos (Panel de gestión usado por el cliente)
Aunque es dificil establecer una clasificación, dentro de la Web 2.0 y en función del contenido que muestra podemos clasificarlas en:
Arquitecturas Web. Modelos
Una aplicación web, o web en general necesita de una estructura que permita su acceso desde diferentes lugares (máquinas). Esta estructura es lo que
se denomina Arquitectura Web (realmente este nombre se da también al diseño de toda la estructura).
La estructura de una Arquitectura Web actual sigue el
siguiente modelo

- Capa de presentación, es la encargada de la navegabilidad, validación de los datos de entrada, formateo de los datos de salida, presentación de la web, etc.; se trata de la capa que se presenta al usuario.
- Capa de negocio, es la que recibe las peticiones del usuario y desde donde se le envían las respuestas; en esta capa se verifican que las reglas establecidas se cumplen.
- Capa de acceso a datos, es la formada por determinados gestores de datos que se encargan de almacenar, estructurar y recuperar los datos solicitados por la capa de negocio.
Plataformas web libres y propietarias
En términos generales, una plataforma web consta de cuatro componentes básicos:
- Sistema Operativo
- Servidor Web
- Gestor de BD
- Lenguaje de Programación Interpretado
Más extendidas:
- LAMP (Linux, Apache, MySQL, PHP) --> WAMP, XAMPP
- WISA (Windows, IIS, SQL Server, ASP.net) --> WIMP
Escalabilidad
Uno de los requisitos fundamentales de una aplicación web es que sea completamente escalable sin que un aumento de los recursos dedicados a la misma suponga modificación alguna en su comportamiento o capacidades.
Esta puede ser:
- Vertical (separación física de las capas lógicas)
- Horizontal (clonado del sistema) --> Balanceadores de carga (Sw, Hw y Hw HTTP)
- Cluster (Agrupaciones de Servidores)
Servidor web Apache
¿Por qué ?
Es una de las opciones más extendidas y
la posibilidad de obtener este software de manera gratuita disminuye mucho los costes pero no es la única razón.
Además soporta
- páginas web estáticas;
- páginas web dinámicas;
- hosts virtuales;
- seguridad mediante cifrado;
- autenticación y control de acceso;
- modularización;
- monitorización de archivos de registro.
Servidor web Apache
¡¡¡Manos a la obra!!!

Servidor web Apache
Introducción a la configuración
Se especifican directivas en archivos de configuración de texto plano (ubicación depende de la distro de Linux).
- Ubuntu/Debian --> apache2.conf --> /etc/apache2
- CentOS/Red Hat --> httpd.conf --> /etc/httpd/conf
- Suse Linux --> httpd.cof --> /etc/apache2
Servidor web Apache
Introducción a la configuración
- Ubuntu/Debian --> apache2.conf --> /etc/apache2
- CentOS/Red Hat --> httpd.conf --> /etc/httpd/conf
- Suse Linux --> httpd.cof --> /etc/apache2
en ellos se cargan otros archivos de configuración mediante la directiva
Include (error si no existe el archivo indicado)
IncludeOptional (no produce error si no existe el archivo)
Include ports.conf
IncludeOptional mods-enable/*.conf (* permite carga de múltiples archivos)
Servidor web Apache
Introducción a la configuración - A tener en cuenta
- Todas las directivas deben colocarse en alguno de esos archivos de configuración
- Los cambios se aplican cuando se inicie o reinicie el servicio
- Sólo una directiva por línea ("\" para ocupar varias líneas de una misma directiva)
- Directivas (Mayúsculas y minúsculas) --> Parámetros (Minúsculas)

Directiva para que funcione tiene que tener su módulo asociado activo
Servidor web Apache
Introducción a la configuración - Secciones (Directory)
Además de directivas la configuración de Apache puede contener Secciones
Incluyen directivas que se aplican en un contexto concreto
<Directory /var/www/html/configuracion>
Require all denied
</Directory>
Contexto
Petición web acceso directorio
Codigo 403, no sirve contenido de ese directorio
Servidor web Apache
Introducción a la configuración - Secciones (Directory)
Una sección a su vez puede contener más secciones
<Directory /var/www/>
<Files "*.conf">
Require all denied
</Files>
</Directory>
Sección Files dentro de Directory
Petición web acceso directorio
Deniega el acceso a los archivos con extensión .conf dentro de /var/www
Forbidden
Servidor web Apache
Introducción a la configuración - ¡¡¡Importante!!!
Consultar siempre la documentación antes de incluir/modificar directivas/secciones
Comprobando el contexto en el que se puede usar cada directiva/sección
Servidor web Apache
Introducción a la configuración - ¡¡¡Importante!!!
Contextos
- server config: configuración global, directiva puede ir fuera de cualquier sección. Se aplicará a todo el servidor web en su conjunto.
- virtual host: <VirtualHost> que se verán más adelante.
- directory: <Directory>, <Location> y <Files> entre otras. Es decir, secciones relativas a archivos y directorios en el servidor, o relativas al recurso pedido en la petición HTTP (como es el caso de <Location>).
- .htaccess: las directivas válidas en este contexto podrán ser usadas dentro de los archivos .htaccess. Los archivos .htaccess son archivos de texto plano que, si están habilitados, se pueden crear en un directorio para establecer directivas específicas a ese directorio (y subdirectorios).
Servidor web Apache
Inicio y Parada de Apache
Depende del sistema (al igual que en la instalación)
Compilado manualmente (/opt/apache)
Iniciar apache:
/opt/apache/bin/apachectl -f /opt/apache/conf/httpd.conf -k start
Detener apache:
/opt/apache/bin/apachectl -f /opt/apache/conf/httpd.conf -k stop
Reiniciar apache:
/opt/apache/bin/apachectl -f /opt/apache/conf/httpd.conf -k restart
Servidor web Apache
Inicio y Parada de Apache
Depende del sistema (al igual que en la instalación)
Instalado desde repo
| Iniciar | Detener | Reiniciar |
|---|---|---|
| service apache2 start | service apache2 stop | service apache2 restart |
| apache2ctl start | apache2ctl stop | apache2ctl restart |
| /etc/init.d/apache2 start | /etc/init.d/apache2 stop | /etc/init.d/apache2 restart |
Requieren ejecución como administrador
# sudo su
Configuración básica Apache
Escenario de partida
Sistema Operativo: Debian GNU/Linux 6.0
Servidor Web: Apache (apache2)
Configuración de Red:
Servidor Web: 192.168.200.250
Cliente de pruebas (desde donde se lanza el navegador): 192.168.200.100
Ip's privadas requieren
- Servidor DNS
- modificar /etc/hosts
- Páginas Estáticas - DocumentRoot (indica la raíz de los ficheros que el servidor va a servir) -- /var/www/html/
Solo necesitamos copiar nuestros ficheros en la ruta donde queremos el proyecto (Ejemplo: miweb)
/var/www/html/miweb
/var/www/html/miweb/prueba.html
Navegador: http://localhost/miweb/prueba.html
Configuración básica Apache
-
DocumentRoot se puede encontrar en distintas ubicaciones.
- Global
- VirtualHost (práctica habitual) 1 Servidor puede servir muchas webs.
-
DirectoryIndex para cuando no se especifica el recurso
- Normalmente index.html
- Orden secuencial.
- Ubuntu/Debian: /etc/apache2/mods-available/dir.conf
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
Configuración básica Apache
-
Contenido dinámico
- Requiere más recursos
- Configuración más compleja
-
Uso de módulos para soportar páginas dinámicas
- mod_actions
- mod_cgi.
- mod_php5
- etc...
Hosts virtuales. Creación, configuración y utilización
¿Qué pasa si queremos servir varias web de dominios distintos y que estén alojadas en un mismo servidor?
Necesitamos crear Hosts Virtuales
- Ubicación en Ubuntu
- /etc/apache2/sites-available/000-default.conf
- Contenido:
<VirtualHost *:80>
ServerName www.midominio.extension
DocumentRoot /var/www/html/miweb
</VirtualHost>
Hosts virtuales. Creación, configuración y utilización
¡¡¡Manos a la obra!!!
Continuará...

DAW-UT01-Implantación, configuración y administración de servidores web
By Manuel Jesús Rodríguez Arabi
DAW-UT01-Implantación, configuración y administración de servidores web
- 309