0% encontró este documento útil (0 votos)
61 vistas7 páginas

Daw MAPS

El documento describe la historia y estructura de la World Wide Web. Se introdujeron los hipervínculos en los años 90 gracias a Tim Berners-Lee, permitiendo compartir información de forma descentralizada a través de protocolos como HTTP, HTML y URLs. La W3C estableció estándares para la web. Existen dos modelos principales: cliente/servidor, con información centralizada en un servidor, y P2P, donde todos los nodos comparten información de forma descentralizada.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
61 vistas7 páginas

Daw MAPS

El documento describe la historia y estructura de la World Wide Web. Se introdujeron los hipervínculos en los años 90 gracias a Tim Berners-Lee, permitiendo compartir información de forma descentralizada a través de protocolos como HTTP, HTML y URLs. La W3C estableció estándares para la web. Existen dos modelos principales: cliente/servidor, con información centralizada en un servidor, y P2P, donde todos los nodos comparten información de forma descentralizada.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

Gracias a todo esto nace WWW (World Wide

Web). Una red de equipos interconectada a HTTP-> Protocolo diseñado para transferir
través de internet que permite compartir documentos HTML, utilizando por defecto
información. puerto TCP 80 para establecer conexiones.
Está en la capa 7 del modelo OSI (capa de
aplicación) y engloba también DNS, FTP y SSH
Aparece el hipervínculos en los 90's gracias a Aplicaciones web VS aplicaciones de escritorio:
Tim Berners-Lee. Permite crear un sistema de - Facilidad de despliegue software en los
HTML-> Lenguaje de marcas que permite crear
acceso a la información de forma clientes
documentos visualmente agradables y
Estructura de la arquitectura descentralizada desarrollando el protocolo
HTTP(Hypertext Transfer Protocol) y el HTML
facilitan la lectura gracias a la adición de - Centralización de la información.
estilos de texto, imágenes,tablas...etc - Seguridad mejorada con sistemas modernos.
web (Hypertext Markup Language) y las URL
En 2014 W3C saca HTML5 que incorpora - Compatibilidad con cualquier SO.
(Uniform Resource Locator). En 1994 nace Reducción de costes
etiquetas para compatibilidad de audio y video.
W3C( World Wide Web Consortium) que regula
las recomendaciones y los estándares.
Estructura:
URL -> Nomenclatura utilizada para hacer
esquema://servidor/directorio/archivo
referencia a objetos y poder localizar
información de manera rápida y sencilla.
https://apache.org/

Ventajas:
- Descentralización. Info repartida en todos
los nodos.
Despliegue - Escalabilidad. + nodos, + eficiencia
- Carga de trabajo repartida. Todos los nodos
Tema 1 Modelo P2P
Utiliza topología de malla. Todos los equipos
deben estar interconectados entre sí y cada
trabajan igual

nodo realiza funciones de cliente y servidor.


Inconvenientes:
- Posibilidad de información duplicada o
inconsistente
- Mayor número de equipos que mantener.+
equipos, + mantenimiento = + costes.

Ventajas:
- Mantenimiento. + barato
- Info y recursos centralizados. Lo gestiona el
servidor
- Posibilidad de balanceo de carga entre varios
Información centralizada en un único servidor
Tipos y modelos de Modelo Cliente/Servidor
que atenderá las peticiones de los clientes.
servidores
Puede responder de forma autónoma a todas
arquitectura web las peticiones sin necesidad de más servidores. Inconvenientes: Cliente -> Navegador que realiza peticiones
- Riesgo de congestión por gran número de Servidor-> Equipo preparado para actuar como
peticiones simultáneas. servidor web.
- Servidor caído = no recursos
- Un servidor carga con mucho trabajo.
P2P = +mejor rendimiento, + red
C/S solo un servidor Ventajas:
3C + Servidores según necesidades. - + Seguridad que C/S
- + Flexibilidad al existir servidores
Funcionamiento: especializados
Evolución del modelo C/S. Se añade un - + Rendimiento al compartir las tareas entre
1. Cliente hace petición al servidor
servidor : servidores
web/aplicaciones
Servidor BBDD Almacena y resuelve las
Modelo 3 capas 2. Servidor Web se comunica con BBDD
consultas
3. BBDD procesa las consultas del Web y Inconvenientes:
Servidor web sirve el contenido solicitado por
devuelve las respuestas a Web - Necesario aumentar los servidores
el cliente
4. Devuelve la info a cliente. - +Tráfico de red entre los servidores
- Riesgo de seguridad si está mal configurado
- Mayor tiempo de espera ya que hay más
procesos internos.
Software preparado para escuchar
permanentemente las peticiones de los
clientes y ofrecerla, ya sea entregando una
Necesitamos un software que gestione la
web o listando un mensaje de error si la
BBDD (MySQL, MAriaDB, PostgreSQL, SQLite...)
petición es incorrecta.
También es un servidores ver el equipo físico
que realiza estas funciones

Funcionamiento de un Ejecución en el cliente: código que se puede


abrir directamente en un navegador web
Otros programas requieren un preprocesador
en el servidor que hace posible que el código
servidor web (HTML, CSS o un programa escrito en JS) se ejecute

Lenguajes de lado servidor: PHP, Python, Perl o


Ruby

Apache:
El más utilizado del mundo.
Según tipo de licencia:
- Open Source: código abierto. Son gratis
Nginx:
(Apache y Nginx)
Alto rendimiento. Multiplataforma
- Propietarios: De pago (Microsoft IIS, Nginx
Plus)
Microsoft IIS(internet Informatiosm Services):
Características de los No conlleva coste el adquirirlo. Se instala
servidores web libres y como característica desde el panel de control
en Sistemas de escritorio o como "rol" en
propietarios Windows Server
Comparación en los apuntes

Despliegue Existe tambien Cherokee que es español y


GWS de Google que es un servidor privado
paraa alojar sus propios servicios
Tema 2
Apache y Nginx son multiplataforma Resto de instalaciones en los apuntes

Instalación de servidores Web Ir a panel de control/programas/activar


caracteristicas de windows
Instalación ISS.
Carpeta raiz: "C:\inetpub\wwwroot" En Windows Server:
Agregar roles y características y selecciona
una instalación basada en roles o
caracteristicas

Ventajas:
- Son más eficientes que una máquina virtual
al no invertir recursos en emular un SO. Los
Docker comparten los recursos del host
anfitrión
Aislan una aplicación y sus dependencias - Encapsular las aplicaciones y las librerías.
Docker (Contenedor) permitiendo desplegar servicios web en Gracias a eso podemos desplegar el mismo
cuestión de minutos Docker en cualquier equipo evitando el riesgo
de que falten dependencias o discrepancias
entre distintas versiones software
-+ ligero que la máquina virtual. Docker
permite la ejecución de múltiples
contenedores en el mismo host
Necesita un certificado válido firmado por una
CA (Certification Autority) y conlleva un
coste, aunque existen soluciones gratuitas
como certbot

Posibilidad de un menor rendimiento causado


Desventajas HTTPS por la cantidad de procesos que ejecutará el
Permite establecer comunicaciones seguras servidor para cifrar los paquetes
entre cliente y servidor utilizando el puerto
TCP443
Tiempo de respuesta podría aumentar debido
HTTPS cifra los datos usando SSL (Secure
al rendimiento del servidor
Socker Layer)utilizado por la aplicacion SSH
(secure Shell) para obtener conexiones
remotas encriptadas Los datos que enviamos se transmiten en
Riesgos de usar HTTP texto plano y se puede leer perfectamente si
alguien intercepta la conexión

- Memory_limit. Establece el límite de


memoria que un script podrá consumir. Se
mide en MB
La modificación de los últimos parámetros se
En fichero php.ini se define la configuración. - Upload_max_filesize. Limita el tamaño
Configuración PHP hace de forma consecuente y POST_MAZ_SIZE
Variables: máximo permitido para subir ficheros al
debe ser mayor o igual a UPLOAD_MAX_FILESIZE
servidor. Se mide en MB.
- Post_max_size. Limita el tamaño máximo
permitido para peticiones POST

- Blind-adress. Establece dirección donde se


podrá acceder a MySQL. Valor por defecto
127.0.0.1 (localhost). Modificandolo se permite
MySQL almacena los archivos de configuración
acceder desde otro host. CUIDADO bechas de
en /etc/mysql, que contiene el fichero
Configuración MySQL seguridad
mysql.cfg.
- Key_buffer_size. modifica el tamaño del
Parámetros:
buffer
- Max_connections. Permite modificar el
número de conexiones simultaneas autorizadas

Configuraciones necesarias y Woker_processes. Define la cantidad de worker


o hilos del procesador que utilizará Nginx para
seguridad gestionar peticiones. Se configura de forma
Se necesitan certificados digitales. por
defecto se usan snake-oil(certificados
automática y tiene relación de un worker por
HTTPS en Nginx autofirmados genéricos), pero se pueden Resto en apuntes
Utiliza la estructura sites-available y sites- cada core de la CPU
generar otros con OpenSSL o adquirir
enabled. Worker_connections. Define la cantidad de
certificados a través de una CA.
Configuración general del servidor web se peticiones que un worker puede gestionar
modifica editando el fichero nginx.conf que se simultaneamente
Configuración Nginx
encuentra en /etc/nginx/
Se puede mejorar el rendimiento, editar la
también almacena información de los sucesos
versión de TLS que queremos usar o
que se producen y los guarda en dos ficheros
establecer rutas de logs
access.log y error.log
Por defecto los logs se almacenan en
/var/log/nginx

Apache2.conf. se definen opciones generales y


de rendimiento
Mod-available y mods-enabled. se almacenan
todos los módulos PHP instalados. al activar
un módulo se realiza un enlace en la carpeta -Acces.log. Almacena información de los
mods-enabled Si pasa un error o incidente se guarda en los clientes que han solicitado recursos al
Ports.conf. Fichero de configuración de los logs(registros de eventos). Hay dos ficheros servidor web
puertos utilizados por Apache para atender importantes en /var/logs/Apache2: -Error.log. Almacena información de lso errores
peticiones que se producen en el servidor web
Sites-available y sites-enabled.en el primero
El servidor web de Apache organiza los sitios se almacenan los ficheros de configuración de
web alojados con un sistema llamado los sitios webs sin activar y en el otro los
virtualHost. Se almacenan en un fichero con activados
Configuración Apache
toda la información referente al sitio web que
estamos publicando.
Por defecto viene con un sitio desactivado que
Ficheros de configuración en /etc/apache
utiliza HTTPS (default-ssl.conf). Para
Despliegue activarlo hay que realizar un enñace simbólico
del archivo a la carpeta sites-enabled

Tema 3 HTTPS en Apache


Podremos entrar a la IP de nuestro servidor
mediante HTTPs al reiniciar. Utilizando las
opciones de desarrollo de google chrome bajo
el apartado "Security" podremos comprobar
que el sitio web es seguro pero no tiene un
certificado válido

Módulos PHP. Permiten que el preprocesador


conecte con otros componentes

Modulos: software complementario que


Módulos NGinx. Se pueden clasificar en 5
aporta funcionalidades extra como configurar
Módulos y aplicaciones datos y servir sitios web seguros utilizando
grupos, para listarlos se usa el comando nginx-
V (apuntes)
HTTPS

-Mod_ssl. Permite al servidor utilizar


protocolos SSL y TSL para servir webs de
forma segura usando HTTPS
Módulos Apache -Mod_auth_digest. Realiza autenticación de
usuarios usando MD5 DigestN
- Mod_rewrite. Activa la redirección URL. Es
necesario para usar ficheros htacces

1. Instalar el paquete apache2-utils


El paquete Apache-utils contiene la aplicación $sudo apt-get install apache2-utils
Apache Benchmark que permite testear el
rendimiento de un servidor web. A partir de los Funcionamiento consiste en realizar una gran
K. Usar Keep Alive
datos que muestre AB podremos tomar cantidad de peticiones a un servidor web y
Pruebas de rendimiento decisiones y modificar la configuración para podremos analizar cualquier tipo de servidor
Pasos
conseguir que nuestro servidor web pueda web (Apache, Nginx o IIS) N. número de peticiones que se realizarán
atender un mayor número de peticiones con
tiempos de espera menor 2.Ejecutaremos comando AB con estos
C. Cantidad de conexiones concurrentes
parámetros:

G ab.csv. Guarda el resultado en un archivo


CSV

H 'Accept-Encoding. gzip,deflate imitará las


peticiones que realizaría un navegador web
Técnica que consiste en simular distintas
máquinas dentro de un mismo servidor.
Se consigue alojar distintos sitios web en un
mismo servidor(multisiting)

ISP Config.Panel de control de código abierto


con licencia BSD. Se utiliza para implementar
servidores web multisitio
Hosting -> Tener un único servidor web que
Hosts virtuales aloja diferentes sitios web
Sistemas de gestión de hosting
cPanel. Gestor de servidores web. Requiere
pagar

Hay aplicaciones que automatizan y facilitan


la administración de Apache, MySQL o PHP e
implementa un a capa de seguridad entre los
diferentes clientes

Basados en IP. El servidor tendrá varias


direcciones IP y podrá asignar una a un sitio
web

Tipos
Al espoecificar un nombre DNS podremos
Basados en nombre: Tendrá una única dirección alojar varios sitios web. Para que el servidor
IP y asignará a los sitios web nombres DNS pueda atender peticiones a través de internet
para servir los recursos por nombre, en la zona DNS del dominio, el
Funcionamiento de los Virtual registro A debe apuntar a la IP del servidor.
Hosts
Se utiliza para almacenar una relación de
direcciones IPs y un nombre DNS.
Así se realizan búsquedas más rápidas, ya que
Fichero Host
la consulta no pasa por ningún router ni
servidor DNS externo.
Se puede usar para hacer pruebas

1. Crear las carpetas de los diferentes sitios


en la carpeta pública de Apache y asignar la
propiedad de éstas al usuario de www-data
(user que utilizarán los servidores web para
acceder a los archivos para comprobar el
funcionamiento de los Virtual hosts y para
diferenciarlos crearemos un archivo HTML con
algún contenido.

Despliegue Es necesario modificar el archivo 'hosts' de


nuestro equipo añadiendo una línea con la IP 2. Creamos un nuevo archivo en la carpeta
Tema 4 Virtual hosts en Apache el FQDN (Fully Qualified Domain Name; que es
la dirección completa y única que nos
sites-available de Apache definiendo dos
Virtual Host dentro del mismo fichero o en
identifica en internet) al que queremos archivos independientes
referenciar
3. Especificar el ServerName de cada web, así
como el documentRoot correspondiente.
Una vez creado el archivo, se activa el sitio con
el comando a2ensite y reiniciamos apache

1. Se crean las carpetas, se realiza la


asignación de permisos al usuario www-data y
creamos archivos HTML

2. Se crean los archivos Server Block en la


Virtual Host es un término propio de Apache, carpeta sites-available y los editamos eliminan
Virtual Block Nginx para Nginx se llaman Virtual Block default_server en las lineas "listen...". Si no se
hace, dará error de server duplicado

3. Activar los sitios realizando un enlace


simbólico a la carpeta sites-available y
reiniciamos Nginx

Permanentes (301). Se usan cuando el cambio


es definitivo. Lo más habitual y la reputación
SEO del dominio se traspasará en la redirección
Dos tipos de redirecciones
Temporales (302). Se usa en tareas de
mantenimiento. El posicionamiento no se ve
afectado ni se traspasará al nuevo dominio

RewriteEngine On
Podemos reenviar una petición de un cliente a # This will enable the Rewrite capabilities
otro web o forzar el uso de HTTPS con los La forma más común es a través del módulo
Si queremos forzar el uso de HTTPS tenemos
Redirección HTTPS usando hosts virtuales.
Útil cuando hacemos cambio de dominio, Redirección en Apache.
mod_rewrite, que permite establecer y evaluar
una serie de condiciones para que se produzca
que añadir un código en el virtual Host que
RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is
escuche por el puerto 80. así, todas las
Virtual Hosts queremos hacer una landing page(página de la redirección. La activación del módulo se
peticiones se trasladarán al puerto 443.
not already HTTPS
bienvenida) o queremos reforzar la seguridad realiza con el comando "a2enmod rewrite"
de la web RewriteRule ^/?(.*) https://%
{SERVER_NAME}/$1 [R,L]

server_name www.nginx1.com;
Añadir en el Virtual Block correspondiente las
Redirección en Nginx rewrite ^/(.*)$ http://www.nginx2.com/$1
líneas indicando la redirección
permanent;
Ventajas:
- Verifica que el sitio web al que accedemos es
Cuando bajo un mismo dominio tenemos varios
legítimo. es posible por una validación entre el
servicios podríamos adquirir un certificado
nombre DNS y la direccion IP del servidor al
para cada uno de ellos llamados certificados
que apunta
comodín
- Realiza un cifrado de los datos transmitidos
utilizando la clave privada del certificado

Los CA son organizaciones que se encargan de


verificar la identidad de los solicitantes de un Comodo SSL
certificado, así como de la emisión de los GeoTrust SSL
Un certificado SSL (Secure Sockets Layer) o mismos. También gestionan el estado de los Symantec SSL
certificado digital es el "documento" que certificados emitidos.
acredita la identidad de un servidor web.
Permite establecer una conexión segura con el
servidor Los buscadores web penalizan el uso de
certificados digitales no firmados dando
menor puntuación para SEO

En algunos casos es interesante tener una CA


propia para generar certificados para nuestros
servidores. A los ojos de los navegadores,
Certificados SSL estos certificados no serán seguros pues la id
Servidores de certificados. del servidor no se puede contrastar.
Solo son seguros si son emitidos por una CA
oficial. Sin embargo, si los instalamos en un
cliente, este si confiará en nuestro servidor
web

2º Crear la estructura de carpetas y los


1º. Tener configurado un FQDN. Editar el Se establece una ruta para almacenar los
archivos index.txt y serial, que OpenSSL
fichero /etc/hosts y modificar la linea 127.0.0.1 certificados en ./demoCA. para cambiaro, 3º. Utilizar la clave privada para generar el
Certificado SSL con OpenSSL utilizará para realizar un seguimiento de los
añadiendo el nombre del servidor con el sufijo modificar el archivo /usr/lib/ssl/openssl.cnf la certificado
CA creados. aqui ya podremos tener la clave
DNS de nuestro dominio linea "dir" debajo del bloque CA_default
privada que utilizará nuestro CA

Es un CA que permite generar certificados SSL


Los certificados tienen una validez de tres
gratis.
meses.
Se definen como "una Autoridad de
Instalación se hace de forma automática,
Certificación gratuita, automatizada y
aunque la propia CA recomienda Cerbot
abierta"
Let's Encrypt
Es capaz de añadir las lineas necesarias al
Herramienta Open Source utilizada para Virtual Host correspondiente, además de
Cerbot automatizar la instalación de certificados SSL encargarse de renovar el certificado cuando
de Lets Encrypt en servidores web sea necesario. Para esto, Cerbot añade una
tarea programada en el fichero crontab

Estos ficheros facilitan una forma de realizar


cambios en la configuración en contexto Para limitar el acceso total o de una
directorio. Un fichero que contiene una o más determinada IP, creamos un archivo .htacces en Al recargas Apache , la web de la carpeta nos
.htacces
directivas, se coloca un documento específico la carpeta a limitar con: devuelve un error 403
de un directorio y estas directivas aplican a Deny from [ALL | IP]
Dos formas de limitar el acceso a carpetas
ese directorio y subdirectorios
Acceso a carpetas seguras 1º Habilitar la directiva AllowOverride All en el
ficherom Apache.conf
Apache NO recomienda .htacces porque
La seguridad en los VH se define utilizando la
Virtual Hosts afectan al rendimiento del servidor, si no que
estructura <Directory>. Deny from ALL o IP
recomienda Virtual Hosts

+ simple
A continuación, añadimos el usuario
Requiere el módulo mod_authbasic para que Tendremos que añadir en el fichero de
Despliegue Tema 5 Basic funcione
Las contraseñas se transmitirán en texto
configuración del sitio web un montón de
lineas que están en el SCORM, fig 14
especificado en el VH, guardando el usuario y
contraseña en el fichero basicAuth.txt y
Se protegen los ficheros y directorios reiniciamos
plano.
Autenticación de usuarios utilizando autenticación con contraseña. Se
realiza desde los VH
+ seguras Después, creamos el archivo con las
añadir la configuración al VH y comprobamos
Digest Las contraseñas irán cifradas si utilizamos Hay que activar el módulo auth_digest contraseñas y daremos permisos y propiedad
funcionamiento
Digest en sitios HTTPS. del archivo al usuario www-data

Permite denegar acceso a feterminados


UFW es un software que realiza funciones de
puertos o bloquear tráfico que proceda de una
cortafuegos en Linux. Es el acrónimo de
dirección IP concreta y para establecer
Uncomplicated FireWall. Es una interfaz
conexiones seguras, permitiendo las
sencilla para gestionar iptables
direcciones IP que nos interesen

Viene instalado por defecto en muchas


distribuciones Linux. En caso contrario:
apt-get install ufw
Mecanismos de control de Limitamos ciertos servicios por IP y/o proteger
los puertos de gestión de ataques de fuerza
acceso: UFW bruta ufw status numbered. Muestra el estado del
fw y un listado numerado de las reglas

ufw enable. Activa el firewall

ufw disable. Desactiva el firewall


Comandos:
ufw reload. Recarga el firewall para aplicar
cambios

ufw allow. Añade una regla que permita tráfico

ufw deny. Añade una regla que deniegue tráfico

Si detecta un número de intentos de inicio de


sesión, bloquea la IP durante un tiempo que
podemos definir

Mecanismos de contro de Sistema de protección frente ataques de Analiza los logs de Apache y banea direcciones
fuerza bruta escrito en Python sospechosas.
acceso: Fail2Ban
Se almacena en /etc/fail2ban/fail2ban.conf, NO EDITAR EL ARCHIVO JAIL.CONF.
Ayuda a proteger los puertos de gestión, como En Ubuntu se usa pero existen más archivos como jail.conf que En todo caso crear un nuevo fichero llamado
el 22(SH) o los puertos 80 y 443 apt-get install fail2ban guardan info de las "jaulas" o monitores que jail.local, donde se introducirá la configuración
tenemos activos de las nuevas jaulas
Los servidores de aplicaciones albergan
aplicaciones desarrolladas en un determinado
El middleware se comunica con un servidor
lenguaje, comunicándose con otros elementos
BBDD para resolver las peticiones y entregar el
de la red, para entregar a cliente final el
contenido sin necesidad de almacenar
contenido solicitado.
información en el cliente
Dicho de otra forma, software intermedio
Aparecen ante la necesidad de desarrollar
(middleware) que permite la ejecución de
aplicaicones en otros lenguajes que permitan
código y estructura los datos para poder
ampliar las funciones de un servidor web
visualizarlo en un navegador. También se le
llama así al equipo que realiza estas funciones
¿Qué son los servidores de
aplicaciones? Servidor web sirve contenido estático
(HTML,CSS,etc) que se ejecuta en el lado Un servidor de aplicaciones contiene todo el
cliente. software necesario para ejecutar código en
Servidor de aplicaciones almacena el contenido servidor y entregar contenido a cualquier
dinámico (PHP...). El servidor necesita un navegador
Diferencias entre un servidor web y uno de software para realizar estas funciones
aplicaciones

JS se usa en el lado cliente pero se puede usar


en el lado servidor usando Node.js

Estructura clásica de arquitectura web:


Servidor de BBDD y de aplicaciones se
Organiza la información y los servicios alojados
Cada contenedor tendrá una aplicación web y comunican para servir las aplicaciones a los
de manera similar a como lo hace un servidor
cada una de ellas escuchará las peticiones por clientes. Los servidores de aplicaciones por sí
web. En los servidores de aplicaciones se
un puerto distinto. así se pueden implementar mismos pueden gestionar peticiones HTTP,
utilizan contenedores para gestionar los
servidores de aplicaciones multisitio pero no es raro encontrar un servidor web que
servicios hospedados
redirija las peticiones al servidor de
aplicaciones actuando como proxy
Servidores de aplicaciones.
Funcionamiento y tipos Tomcat
WebLogic Server
Servidor de aplicaciones Java
Wildfly
Tipos de servidores de aplicaciones: Libres y IBM WebSphere Aplication Server
propietarios
Node.js
Servidor de aplicaciones JavaScript
Wakanda

Contenedores independientes. Funciona como


servidor de aplicaciones y servidor web de
forma autónoma
Servidor de aplicaciones Open Source liberado Cuando se habla de Servlets y JSP nos
en 1999. referimos al entorno de ejecución incluido en Servidor web carga las librerías necesarias
Realiza funciones de servidor web Apache y es Apache Tomcat, que permite a los clientes Dos modos de funcionamiento para comunicarse con Tomcat
un contenedor de Servlets y JSP (Java Server realizar llamadas y ejecución de programas
Pages) alojados en este servidor
Coexistencia con un servidor web. Se limita a Al recibir una petición, la evalúa si se
ejecutar los Servlets, mientras que el servidor En caso de funcionar de manera conjunta, el corresponde con un servlet o JSP y si
web se encarga de servir el contenido proceso es: procedem reenvía la petición al servidor de
solicitado a Tomcat aplicaciones

Apache Tomcat El servidor Tomcat procesa la petición y


devuelve el resultado al servidor web que,. a
su vez, responde la petición del cliente

Es un middleware ya que incluye lo necesario


para comunicarse con el SO y resto de
componentes, como un servidor de BBDD. Es
multiplataforma y se puede instalar en
cualquier SO. Se necesita JRE (Java Runtime
Environment)

Carpeta raíz /: almacena los ficheros típicos


de un sitio web como documentos, HTML, CSS
y los programas, en JSP
Despliegue Tema 6
/WEB-INF: contiene las librerías de la
LAs aplicaciones web podemos agruparlas en aplicación y el descriptor de despliegue
un único archivo y desplegarlas en otros
servidores sin necesidad de instalar software
Compuesta por archivos que permiten su uso. original. Todos los archivos se pueden /WEB-INF/classes: contiene las clases y los
Aplicaciones web. Estructura (Servlets, JSP, HTML, CSS,etc.) comprimir en un único archivo.WAR (Web
Estructura de un fichero WAR
Servlets
Application Archive. El hecho de comprimir los
archivos y carpetas en un fichero se le llama
empaquetado WEB-INF/lib: contiene las librerias necesarias
para conectar con la BBDD

/META-INF: contiene el manifiesto de la


aplicación

Nos avisan si cometemos errores de sintaxis y


nos indica donde está el error que no permite
IDE integrado
la compilación del programa. (NetBeans o
Eclipse Java EE)
No confundir con JAR, que son los archivos
compilados y WAR lo lleva todo para desplegar
Aplicaciones web. Empaquetado de una aplicación web
Se utiliza el IDE para compilar el proyecto y
exportarlo a un archivo apto para servidores de
la aplicación

Componentes aplicaciones

Son archivos en XML que describen los


parámetros necesarios para el despliegue de
una aplicación web. Se puede modificar sin
tener que cambiar el código fuente de la
Descriptor de despliegue
aplicación. Se almacena en la carpeta WEB-INF
y se llama web.xml. Este fichero es un
estándar compatible con cualquier servidor de
aplicaciones Java EE

Asíncronos o non-blocking no ejecutan el


código en el mismo orden que fue escrito y no
esperan a que una operación de
lectura/escritura termine para pasar a la
siguiente línea. Dejan que el SO la dé por
Servidor de aplicaciones que nada como un finalizada sin mostrar resultados
entorno de ejecución de JS. Node.js utiliza el
motor JavaScript V8 de Google y utiliza un ¿Qué es un modelo de entrada-salida (I/O)
Node.JS modelo de entrada-salida asíncrono controlado asíncrono? No se recomienda instalar Node.js desde los
por eventos, convirtiendo Node.js en un repositorios de Ubuntu, ya que pueden estar
runtime liviano y de alto rendimiento Node.js se presenta como un sistema propicio desactualizados. Mejor desde el repositorio
Node.js no utilizará un descriptor de
para desarrollar sistemas escalables oficial de Node.js
despliegue en XML, en cambio, utilizará un
argumentando que es inmune a los bloqueos
archivo llamado package.json donde se listan
provocados por altas cargas de trabajo, ya que
las dependencias que requiera nuestra Al escribir programas en Node.js, declaramos
casi ninguna función de Node.js realiza I/O
aplicación. variables como el host y puerto, pudiendo
directamente
crear tantos programas como puertos
podamos usar

Escalabilidad. Permite crear nuevas instancias


de una aplicación web en un corto periodo de
tiempo

Desplegar aplicaciones com Los contenedores permiten desplegar en un


mismo host varios servicios de forma rápida y
Independiencia del software. Son
independientes del SO o de las versiones de
Docker ligera. Ventajas de los docker librerías y dependencias disponibles en el SO

Facilidad de mantenimiento. Al tener una


imagen principal desplegada en los diferentes
servidores, en caso de tener que actualizar
algún componente, solo tendremos que
realizar cambios una vez y volver a lanzar el
proceso en el resto de máquinas.
Dependiendo de la existencia de un servidores Si el servidor atiende las peticiones y las
web, la arquitectura de una aplicación puede deriva al servidor de aplicaciones si fuese
ser cliente-servidor o regirse por el modelo 3 necesario, sería modelo 3 capas. En caso
Arquitectura de servidores de capas contrario, cliente-servidor

aplicaciones En cuanto a los servidores de aplicaciones,


utilizan arquitectura interna y nos procesos
definidos para atender peticiones

web.xml. Se puede modificar los parámetros


generales del servidor de aplicaciones

tomcat-users.xml. Creamos los usuarios que


Entre los archivos de configuración que
pueden acceder al dpto de administración de
encontramos ahí, los más importantes son:
apache tomcat

server.xml. Se especifican los conectores.


Bajo sistema Linux, almacena los ficheros de Cada conector establece un puerto de
Apache Tomcat: Configuración configuración en el directorio escucha para Apache Tomcat que podremos
/usr/share/tomcat/conf cambiar

Para gestionar el servicio, Apache Tomcat usa


Dentro del directorio de Tomcat está la
un script llamado Catalina. Permite iniciar o
carpeta bin, que almacena los scripts y
parar el servicio, comprobar la configuración o
archivos necesarios para que Tomcat funcione.
mostrar la versión

Catalina.out. Archivo principal y almacena


errores y eventos producidos en el servidor
Cualquier servicio utiliza logs para almacenar
un listado de los eventos que han ocurrido.
Catalina.*.log. Generará un archivo diario con
Por defecto, los registros de Tomcat se
los eventos almacenados en catalina.out
almacenan en la carpeta
usr/share/tomcat/logs donde se encuentran:
Localhost_Access.*.txt. Log de aceso.
Apache Tomcat: Logs y SSL Almacena la IP de los clientes que han
solicitado info al servidor

Una vez creado el almacén e importado el


Despliegue Tema 7
Para cifrar la conexión utilizando el protocolo Los certificados SSL se guardan en un almacén
SSL Apache Tomcat certificado, podremos modificar el archivo
HTTPS necesitamos certificado SSL llamado keystore utilizando el comando keytool
server.xml y activar un conector

La configuración de cada proyecto se


Uno de los puntos fuertes de Node.js es su Las librerías se almacenan en /usr/libr/nodejs.
gestionará directamente desde el fichero
escalabilidad, ya que no requiere ficheros de Cada módulo tendrá un fichero package.json
app.js. Aquí se definen los parámetros de cada
configuración en el servidor para su con el descriptor de despliegue necesario para
aplicación, como será, el puerto por el que
funcionamiento su funcionamiento.
escucha o el protocolo utilizado

Alto rendimiento. se basa en la posibilidad de


tener documentos con la información anidada,
evitando un número elevado de operaciones de
entrada/salida, el soporte de índices y la
posibilidad de crear índices sobre arrays y
subdocumentos

Alta disponibilidad mediante la réplica


automática conocida como replica set, que
Configuración Node.js. MondoDB Es de los SGBD no relacionales más proporciona redundancia de datos y failover
utilizados automático, es decir, la transferencia
MongoDB automática a un nuevo nodo cuando se
encuentra un fallo en uno de los nodos

Escalado automático. Ofrece escalado


horizontal. para ello el sistema de sharding
nos permite distribuir información por
diferentes cluster de máquinas

MongoDB + Node.js permite acceder a la


información de forma rápida y fiable, siendo
una opción más práctica en entornos que
buscan un alto rendimiento

Se crea la aplicación en Jode.js declarando las


Creamos una aplicación sin JS .
variables necesarias para forzar el uso de
Tenemos preparado el certificado del servidor Se lanza la aplicación con el comando node
Node.js y SSL (autofirmados o no) que estén en la misma
HTTPS y cargar los certificados recien creados
app.js
creando una carpeta para el nuevo proyecto y
ruta que la aplicación web
dentro se analiza un fichero app.js

También podría gustarte