Apuntes de Kirby
  • 👀whoami
  • 🦉Redes
    • Introducción Redes
      • Organizaciones
      • Historia
      • Puntos de conexión
      • Métodos de acceso a la red
    • Clasificación de las redes
    • Topología de las red
    • Direccionamiento IP
      • IPv4
        • Subredes IPv4
        • Superredes IPv4
        • VLSM
      • IPv6
      • MAC
      • NAT
    • Enrutamiento
      • Enrutamiento estático
      • Enrutamiento dinámico
        • RIPv1 & RIPv2
        • Tablas de enrutamiento
    • Redes conmutadas
    • Switches
      • Arranque
      • Recuperación
      • Administración básica
    • CML
      • 🚧1er CML lab
    • CISCO
      • ¿Qué son las VLAN?
        • Ejemplo 1 de VLAN
        • Ejemplo 2 de VLAN
      • Acceso y password
      • NAT / PAT
    • Firewalls
      • Tipos de firewalls
      • ZPF
        • Funcionamiento
        • Configurando un ZPF
      • Sophos Firewall XG
        • Sophos home
        • Aprendiendo a usar Sophos
      • pfSense
        • Instalando pfSense
        • OpenVPN en pfSense
        • Port Forward
        • Alias
    • Proxy
      • Squid en pfSense
        • Squid Proxy Server
        • SquidGuard Proxy
      • Proxy reverse Nginx
    • 🚧Suricata
  • 🐝Servicios
    • Servidores Web
      • Nginx
        • NGINX, hosts virtuales
        • Hosts virtuales basados en dominio
        • PHP-FPM
        • Nginx: PHP y MySQL
          • MySQLi - PHP
        • En Alpine linux
        • 🚧Proxy
    • Servidores de correo
      • Seguridad en el correo
      • Postfix
      • hMailServer
      • Clientes de correo
        • Mailutils
        • Mutt
    • Servidores de FTP
      • FileZilla
      • VSFTPD
      • FTP vía IIS
    • Servidores DNS
      • DNS - Windows Server 2016
      • DNS - Ubuntu Server 22.04
      • Systemd
    • Servidores DHCP
      • DHCP-Windows Server 2016
      • DHCP-Ubuntu Server 22.04
    • Servidores MySQL
    • 🚧Mensajería instantánea
      • Ejabberd
    • 🚧Imágenes - Vídeos
      • FFMPEG + YT-DLP
      • Plex
      • Jellyfin
      • Plesk
      • RTMP
      • SRT
    • Webmin + Virtualmin
  • NextCloud
  • 🔑Seguridad
    • NAS
      • Instalación Synology NAS en VirtualBox
        • Creación de volúmenes y su uso
        • Actualización Synology NAS
        • Creación de usuarios y carpetas compartidas
        • Funciones del panel de control
          • Acceso por SSH
          • Configuración de los servicios de archivos
          • Configuración de red
          • Copias de seguridad (restauración)
          • Seguridad
          • Personalizar páginas de inicio
          • Servicio de notificaciones
        • Centro de paquetes Synology
          • Servidores multimedia
          • Paquetes de utilidades
          • Cloud Sync
          • Hyper Backup
          • Synology Office
      • Truenas
        • Rsync en Truenas
      • OpenmediaVault
    • Backups
      • Rsync
        • Ejemplo de rsync
    • ¿Qué son las ACL?
    • SOPS/AGE
    • RAID
      • mdadm
  • 🐳Virtualización
    • Proxmox
      • Instalar en VMWare
      • Instalar en VirtualBox
      • Entorno Proxmox
      • Almacenamiento local
      • Añadir discos
      • Clonar
      • Qemu agent
      • Linux container - LXC
      • Clúster
      • Red Interna
      • 🚧Proxmox Backup
      • 🚧Otras consideraciones
    • Alpine Linux
    • Contenedores
      • Docker
        • YAML
        • Instalando Docker
        • Portainer
          • Instalando Portainer
          • Dentro de Portainer
        • Docker volumen
        • Docker compose
          • Docker: PHP y MySQL
          • Importar sitio web en Docker
          • Instalando Wordpress
      • Pi-hole
        • Instalando Pi-hole en Docker
        • Instalando Pi-hole en Debian
        • RDP
          • RDP - Docker
  • 🐞Misceláneas
    • Datos - codificación
    • IPTables
    • Túnel con Cloudflare
    • Servidor de video
    • Comandos de Linux
    • Anaconda & Spyder
    • CGI - NGINX
    • Arduino
      • Capítulo 0 Blink
      • Capítulo 1 Led
      • Capítulo 2 Botton & LED
  • ⁉️Interesante
    • Curioso
    • Ideas
Powered by GitBook
On this page
  • Funcionamiento
  • Protocolos
  • Funciones de un servidor web
  • Tipos de servidores web
  • Apache Tomcat
  • ¿Qué es un hosting?
  • Links

Was this helpful?

Edit on GitHub
  1. Servicios

Servidores Web

PreviousSuricataNextNginx

Last updated 1 year ago

Was this helpful?

Los servidores web se utilizan para la entrega de contenido web, permitiendo transferir documentos a los clientes como páginas web a un navegador. Por servidores web debemos tener en cuenta dos cosas: software del servidor y equipo en el que el software del servidor web se ejecuta. Adicionalmente, podemos decir que un host puede alojar múltiples soluciones de software para servidores web.

SI hacemos un poco de historia, el desarrollo de los servidores web está vinculado al físico e informático británico , que en 1989 sugirió que el intercambio de información en la Organización Europea para la Investigación Nuclear debería realizarse a través de un sistema de hipertexto.

En 1990, junto con , presentó un proyecto llamado “”, y también se creó el primer navegador web y otros elementos básicos de Internet como HTML y HTTP.

Un servidor web puede entregar contenido simultáneamente a varios PC o navegadores web. La cantidad de solicitudes (REQUESTS) y la velocidad con la que pueden ser procesadas depende, entre otras cosas, del hardware y la carga (número de solicitudes) del host. Sin embargo, la complejidad del contenido también juega un papel importante: los contenidos web dinámicos necesitan más recursos que los contenidos estáticos.

En resumen, un servidor web es un servidor que satisface peticiones de equipos clientes de forma remota utilizando el llamado modelo cliente servidor.

Por tanto, los servidores HTTP suelen almacenar por lo general páginas web, que incluyen archivos HTML, PHP, ASP, etc., así como imágenes, vídeos y audio.

Funcionamiento

  1. Primero, el usuario escribe la URL del sitio web que quiere visitar en la barra de direcciones de su navegador web.

  2. El navegador del cliente envía una solicitud al servidor web, el cual responde entregando la página HTML.

  3. La página HTML puede ser un documento estático en el host o ser generada de forma dinámica,

  4. Si la página web es dinámica el servidor web tiene que ejecutar un código de programa que puede ser Java, PHP, etc. antes de tramitar su respuesta. Incluso, puede ser que requiera de una DB que puede o no estar alojada en el propio servidor web.

  5. El navegador interpreta la respuesta, lo que suele generar automáticamente más solicitudes al servidor como, por ejemplo, imágenes código CSS, JavaScript, etc.

Protocolos

El código que envía el servidor al cliente es renderizado por un navegador web. Para la transmisión de datos se utiliza el protocolo HTTP (HTTPS) perteneciente a la capa de aplicación del modelo OSI.

El protocolo HTTP es el protocolo de comunicación que permite las transferencias de información en la World Wide Web que a su vez, está basado en los protocolos de red TCP / IP (y rara vez UDP).

HTTP ha evolucionado en múltiples versiones, muchas de las cuales son compatibles con las anteriores. El cliente le dice al servidor al principio de la petición la versión que usa, y el servidor usa la misma o una anterior en su respuesta.

Funciones de un servidor web

Parte de las funciones que debe cumplir un servidor web son:

  • Seguridad - Cifrado de la comunicación entre el servidor web y el cliente vía HTTPS

  • Autenticación - Autenticación HTTP para áreas específicas de una aplicación web

  • Caching - Almacenamiento en caché de documentos dinámicos para la respuesta eficiente de solicitudes y para evitar una sobrecarga del servidor web

  • Cookies - Envío y procesamiento de cookies HTTP

Tipos de servidores web

Existen diferentes tipos de software para ejecutar un servidor web. Algunos son gratis otros de pago pero la condición principal a cumplir es que el software sea compatible con el SO del host.

La mayoría de los servidores web están basados en Linux, pero también los hay que se ejecutan en Windows, con excepción de Windows IIS, que solo es ejecutable en servidores Windows.

Servidor APACHE

El término Stack, en el mundo del desarrollo de software, viene del término acuñado Stack de soluciones y no es mas que una colección de tecnologías que se empaquetan para formar una plataforma. Esta plataforma admite cualquier tipo de aplicación.

XAMPP es también software libre, y contiene igualmente un sistema de gestión de bases de datos MySQL, el servidor web Apache y los intérpretes para lenguajes de script PHP y Perl. El nombre es en realidad un acrónimo:

  • X (para cualquiera de los diferentes sistemas operativos),

  • Apache, MariaDB / MySQL, PHP, Perl.

  • A partir de la versión 5.6.15, XAMPP cambió la base de datos MySQL por MariaDB, un fork de MySQL con licencia GPL.

El programa se distribuye bajo licencia GNU, disponible para Windows, GNU/Linux, Solaris y Mac OS X. Es capaz de funcionar como un servidor web libre, fácil de usar y capaz de interpretar páginas dinámicas.

Tiene una gran desventaja y es su bajo rendimiento cuando se reciben miles de requests simultáneas de pedidos de contenido dinámico o archivos estáticos, quedando rezagado por su arcaica arquitectura versus nuevas y mejores opciones como Nginx.

Apache Tomcat

También llamado Jakarta Tomcat o simplemente Tomcat este servidor funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta de la Apache Software Foundation.

Se trata de un servidor web de código abierto desarrollado en Java y quien quiera crear contenidos web con Java, encontrará en Apache Tomcat la solución idónea.

Un servlet es una clase de Java que se utiliza para ampliar las capacidades de un servidor. La palabra servlet viene de otra anterior, applet, que hace referencia a pequeños trozos de código que se ejecutan en un navegador web.

Nginx

En inglés se pronuncia “engine ex” y se trata de un servidor web open source y gratuito, aunque también existe una versión comercial.

La denominación C10k hace referencia al problema de administrar diez mil conexiones concurrentes. Cabe notar que las conexiones concurrentes no son lo mismo que solicitudes por segundo, aunque son conceptos similares porque se trata de administrar muchas solicitudes por segundo requiere una alta capacidad de procesamiento, mientras que un alto número de conexiones concurrentes requiere administrar las conexiones de forma eficiente.

En el problema de optimización de las conexiones se requiere considerar varios factores para que un servidor web pueda gestionar muchos clientes. Entre estos factores se incluye una combinación de restricciones de SO y limitaciones del servidor web.

Por tanto, Nginx fue inicialmente desarrollado con la idea de superar el rendimiento ofrecido por el servidor web Apache. Al servir documentos estáticos, Nginx usa bastante menos memoria que Apache, y puede manejar alrededor de 4 veces más solicitudes por segundo.

Este software destaca por un alto rendimiento e incluye funciones de servidor proxy reverso HTTP para reducir la carga del servidor y permitirle trabajar más rápido, así como POP3 y IMAP. Está disponible para Windows, Linux y Unix.

Ventajas de Nginx

  • Configuración simple y potente, que permite configurarlo para integrarse nativamente con casi cualquier tecnología y lenguaje de programación moderno.

  • Ideal para despachar documentos estáticos y dinámicos.

  • Poco consumo de recursos en entornos de muchas visitas simultáneas, ideal no sólo para despachar visitas de un modo rápido, sino también para evitar agregar nuevo hardware cuando no es necesario realmente.

Desventaja

No soporta el tipo de archivo .htaccess clásico de Apache, aunque incluye su propio lenguaje de REWRITES.

¿Qué es un hosting?

El hosting o alojamiento web es el espacio donde se aloja un sitio web para que cualquiera pueda verlo en Internet.

Existen los:

  • hostings compartidos. Quiere decir que varios hostings comparten un mismo servidor físico.

  • Hosting gratuito (asumes publicidad y recursos muy limitados).

  • Hosting dedicado.

Si contrataras un hosting compartido estarías usando los recursos de un web server junto con otros clientes. Por supuesto, los datos son privados para todos; nadie puede entrar en tu hosting ni tú podrás entrar al hosting de los demás usuarios.

Ejemplos de hosting

  • Gratuito: Hostinger – 000webhost

  • Pago: Arsys, CDMON, OVH

Servidores web vs hosting

Un servidor permite alojar contenido que luego es distribuido de diferentes formas. La más común hoy día son las páginas web, si bien que los contenidos distribuidos mediante Apps cada vez cobran más protagonismo.

La diferencia entre servidor web y un hosting está sobre todo en el presupuesto disponible y los conocimientos para administrar o no un servicio de tipo y todo lo que eso trae consigo.

La pregunta adecuada sería ¿para que vas a utilizar el servicio de alojamiento web? Según la respuesta y tu presupuesto, al igual que los conocimientos en administración de sistemas que tengas podrás decantarte por contratar hosting web o un servidor web.

Por una parte tenemos los Hosting VPS, Cloud o Compartidos, pero existen otros servicios asociados a los servidores web que no necesariamente son productos que un usuario final vaya a contratar.

Servidor web

Hosting

Te permiten alojar uno o pocos sitios en un servidor donde disfrutas de todos los recursos de CPU, memoria, disco y ancho de banda sin tener que compartirlos con otras cuentas de Hosting.

Por lo general su contratación es más económica que la de un Hosting compartido tradicional, pero tienen un coste más elevado en la parte de implementación y además requieren de altos conocimientos en la administración de sistemas.

Solución adecuada para quienes solo quieren centrarse en construir su Blog, una Tienda online de productos, una página de servicios, etc., y no tienen tiempo o conocimientos para lidiar con la puesta en marcha y seguridad de un servidor web.

Te permite contratar un Plan de Hosting específico, limitado por regla general en tamaño de disco disponible, recursos de memoria, procesos y otros, pero a cambio desentenderse de la seguridad y el funcionamiento del mismo.

· Ventajas:

· Administración del servidor al 100%

· Escalabilidad inmediata bajo demanda.

· Elección del hardware de la máquina y del sistema operativo.

· Precios baratos y competitivos.

· Disponibilidad completa del ancho de banda asignado al servidor.

· Accesos total a todos los archivos del sistema.

· Control total de los procesos que se ejecutan en la máquina.

· IP fija o dedicada única.

· Ventajas:

· Administración delegada por cuenta del proveedor.

· Soporte 24/7/365 en todo lo relativo al Hosting.

· Muchos proveedores de Hosting compartido ofrecen soporte a CMS.

· Copias de Seguridad diarias.

1) Desventajas:

2) Requiere conocimientos en Administración de Sistemas.

3) No dispone de Soporte centrado en la Administración.

4) Requiere altos conocimientos en seguridad en servidores.

5) El Soporte se debe contratar por separado.

6) Requiere la compra del software, licencias y actualizaciones.

7) La seguridad corre por cuenta del proveedor.

Desventajas:

· Precios más elevados.

· El hardware y S.O van impuestos en la contratación.

· Ancho de banda ajustado al tipo de Hosting que se contrata.

· Limitación en el accesos a los archivos del servidor.

· Limitación de los procesos a ejecutar en base al Hosting contratado.

· IP compartida (normalmente geolocalizada).

Links

Apache en Windows

Guía de instalación

Apache nació en 1996. Es un programa de código abierto, siendo además un software gratuito, y multiplataforma puesto que funciona sobre Windows, Linux y Unix. Es mantenido y desarrollado por la .

El stack LAMP (Linux, Apache, MySQL y PHP) lo popularizó muchísimo durante el auge de las aplicaciones hechas en desde el año 2000 en adelante. Por ejemplo: XAMPP, WAMPP, MAMP.

El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web (

Nginx creado originalmente por , y tuvo su primer lanzamiento público en octubre de 2004. Inicialmente Igor concibió el software como una respuesta al llamado , que se refiere al problema de rendimiento de manejar 10,000 conexiones concurrentes. Esto es un problema de optimización de conexiones de red para gestionar un gran número de clientes al mismo tiempo.

(el más común en los alojamientos web).

o

o

🐝
Tim Berners-Lee
Robert Cailliau
CERN httpd
Apache Software Foundation
PHP
https://www.arquitecturajava.com/que-es-un-servlet/)
Igor Sysoev
problema C10K
Hosting compartido
https://recluit.com/que-es-lamp-stack/#.Y3JBz5rMJPY
https://norfipc.com/internet/instalar-servidor-apache.html
https://es.wikihow.com/instalar-Apache-en-Windows
https://httpd.apache.org/download.cgi#apache22