Arquitectura y servidores Web Cheat Sheet

A Programming › HTTP cheat sheet in English and español (Spanish) by jaotalvaro

Las arquitecturas web que existe, y los servidores web más comunes, además los protocolos HTTP y HTTPS, comandos para la instalación de Nginx

1,839 views 461 downloads 6 Oct 2023 History

Arquit­ecturas Web

Modelo Client­e-S­ervidor
Aplica­ciones web pequeñas, clientes realizan petición, servidor devuelve resultado
Modelo Client­e-S­ervidor con servidores encade­nados
Tareas más complejas, distribuir subtareas en varios servidores
Modelo Peer-t­o-Peer (P2P)
Todas las comput­adoras actúan simult­áne­amente como clientes y servidores

Servidores Web y de Aplica­ciones

Servidores Web
Servidores de Aplica­ciones
Servidor que permite el acceso a recursos a través del protocolo HTTP, permiten consultar, cargar y eliminar recursos del servidor.
Servidor que ofrece a los clientes un servicio de ejecución de aplica­ciones, es un software que controla la ejecución de programas.
Ejemplos: Apache o Nginx (Linux), Microsoft Internet Inform­ation Server (Windows)
Ejemplos: GlassFish (servidor Java EE, Oracle), Tomcat o Microsoft Internet Inform­ation Server (servidor .NET)

Servidores de Archivos y Direct­orios

Servidores de Archivos
Servidores de Direct­orios
Se utilizan princi­pal­mente para implem­entar las aplica­ciones en el servidor donde se ejecutarán
Permite gestionar inform­ación admini­str­ativa sobre el entorno de una aplicación web, facilitan la gestión de inform­ación relaci­onada con la explot­ación de aplica­ciones web.
Ejemplos: ProFTPD o vsftpd (Linux), Microsoft Internet Inform­ation Server (Windows).
Ejemplos: OpenLDAP (Linux), Active Directory (Windows).

Plataf­ormas Web libres y propie­tarias

Plataf­ormas Web Libres
Plataf­ormas Web Propie­tarias
LAMP: Linux, Apache, MySQL, PHP
WISA: Windows, Intern­etI­nfo­rma­tio­nSe­rvices (IIS), SQL Server, ASP
Otras plataf­ormas:
WAMP (Windo­ws-­Apa­che­-My­SQL­-PHP)
WIMP (Windo­ws-­IIS­-My­SQL­-PHP)
LNMP (Linux + Nginx + MySQL o MariaDB + PHP)
WNMP (Windows + Nginx + MySQL o MariaDB + PHP)

Protocolos HTTP y HTTPS

Protocolo HTTP
Protocolo HTTPS
El protocolo de transf­erencia de hipertexto (HTTP, Hypertext Transfer Protocol) es el motor que da vida a Internet, ya que es la base para la web
Protocolo de aplicación basado en el protocolo HTTP, destinado a la transf­erencia segura de datos de hipert­exto, es la versión segura de HTTP.
Funcio­nam­iento:
Funcio­nam­iento
1. Un usuario accede a una URL
1. Cliente envía petición de sesión segura
2. El cliente Web descod­ifica la URL
2. Servidor envía certif­icado X.509
3. Se abre una conexión TCP/IP con el servidor
3. Cliente autentica certif­icado
4. El servidor devuelve la respuesta al cliente
4. Cliente genera clave simétrica aleatoria
5. Se cierra la conexión TCP
5. Cliente y servidor conocen y utilizan clave asimét­rica.

Instal­ación y config­uración de Nginx

Actualizar reposi­torios: sudo apt update
Actualizar sistema: sudo apt upgrade
Instalar Nginx: sudo apt install nginx
Comprobar instal­ación: systemctl status nginx
Ruta registros correctos del servidor: /var/l­og/­ngi­nx/­acc­ess.log
Ruta registros erróneos del servidor: /var/l­og/­ngi­nx/­err­or.log
Reiniciar servidor: sudo systemctl restart nginx

Crear sitio web en Nginx

Crear carpeta para el sitio: sudo mkdir -p /var/w­ww/­nom­bre­/html
Carpeta sea de usuario web: sudo chown -R www-da­ta:­www­-data /var/w­ww/­nom­bre­/html
Conceder permisos para evitar error: sudo chmod -R 755 /var/w­ww/­nom­bre­/html
Editar archivo de config­ura­ción: sudo nano /etc/n­gin­x/s­ite­s-a­vai­lab­le/­nombre
Crear archivo simbólico para alta automá­tica: sudo ln -s /etc/n­gin­x/s­ite­s-a­vai­lab­le/­nombre /etc/n­gin­x/s­ite­s-e­nabled/
Reiniciar servidor: sudo systemctl restart nginx

Autent­icación en Nginx

Instalar herram­ienta htpasswd para generar contra­seña: sudo apt install apache­2-utils
Generar usuario y contra­seña: sudo htpasswd /etc/n­gin­x/.h­tp­asswd usuario
Editar config­uración nginx: sudo nano /etc/n­gin­x/s­ite­s-a­vai­lab­le/­nombre

Activación HTTPS en Nginx

Crear carpeta para los certif­icados: sudo mkdir /etc/n­gin­x/ssl
Crear certif­icados y claves: sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/n­gin­x/s­sl/­ser­ver.key -out /etc/n­gin­x/s­sl/­ser­ver.crt

Comments

No comments yet.

Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.