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 estático
    • Enrutamiento dinámico
      • RIPv1 & RIPv2
      • Tablas de enrutamiento
      • 🚧Redes conmutadas
    • 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
  • ¿Que es un proxy?
  • Configuración de un reverse proxy con Nginx

Was this helpful?

Edit on GitHub
  1. Servicios
  2. Servidores Web
  3. Nginx

Proxy

PreviousEn Alpine linuxNextServidores de correo

Last updated 4 months ago

Was this helpful?

¿Que es un proxy?

¿Qué es un proxy, servidor proxy o proxy web? Pues un servidor que se sitúa delante de un grupo de equipos cliente. Cuando los clientes realizan solicitudes a sitios y servicios en Internet, el servidor proxy intercepta esas peticiones y es quien se comunica con los servidores web en nombre de esos clientes, como un intermediario.

Le decimos proxy inverso a un servidor que se sitúa delante de los servidores web y reenvía las solicitudes del cliente a esos servidores web. Los proxies inversos se implementan para mejorar la seguridad, rendimiento y la fiabilidad.

En una comunicación estándar cliente - servidor, el cliente se comunica directamente con el servidor, de modo que el cliente enviaría las solicitudes al servidor y éste le respondería de manera directa al cliente.

Cuando interviene un proxy en la comunicación, el cliente enviaría las solicitudes al proxy y sería éste quien se las reenviaría al servidor en cuestión. Lo mismo con la respuesta del servidor hacia el cliente: siempre pasarían por el proxy.

Veamos el diagrama siguiente donde tenemos los dispositivos involucrados en una comunicación vía proxy:

  • PC o cliente: el cliente que solicita la web. Le llamamos (A)

  • Proxy: el servidor proxy intermediario, al que llamamos (B)

  • Servidores web: a los que llamamos (C)

Depende de la ubicación del servidor proxy: delante del cliente o delante del servidor web estaríamos ante un servidor proxy de reenvío o un reverse proxy.

Un proxy inverso se sitúa delante de los servidores que pueden ser uno o varios e intercepta las solicitudes de los clientes, pero dentro del perímetro de la red.

Podemos decir que un proxy de reenvío al situarse delante del cliente, se asegura que ningún servidor se comunique directamente con él. Por el contrario, un proxy inverso se sitúa delante del servidor y se asegura que ningún cliente se comunique directamente con ese servidor.

Un proxy inverso tiene una serie de ventajas entre las que tenemos:

  • load balancing - un sitio web puede recibir muchísimas peticiones de usuarios cada día, no ser capaz de manejar todo ese tráfico. Entonces, el sitio web puede estar distribuido entre un conjunto de servidores diferentes, todos ellos manejando solicitudes para el mismo sitio, proporcionando un equilibrio de carga, que distribuye el tráfico entrante de manera uniforme entre los diferentes servidores para evitar que un solo servidor se sobrecargue.

  • protección - un sitio web no necesariamente tiene por qué revelar la IP de su servidor, lo que dificulta posibles ataques contra el servidor.

  • equilibrio de carga global (GSLB) - es una forma de equilibrio de carga, dado que un sitio web puede estar distribuido en varios servidores por el mundo y el proxy inverso enviará a los clientes al servidor que esté geográficamente más cercano. Esto permite reducir las distancias que deben recorrer las solicitudes y las respuestas, minimizando el tiempo de carga.

Configuración de un reverse proxy con Nginx

Las condiciones sobre las que estoy trabajando:

  • Utilizaré para ello dos VM conectadas en red NAT.

  • En ambas VM tengo configurado Nginx.

  • Un Ubuntu Server con dos sitios web: punky.com:8080 (php) y kirby.com:8081

  • En Ubuntu Desktop con la instalación de Nginx.

En el archivo de configuración de Nginx:

// Some code

🐝
🚧
Proxy de reenvío
Proxy inverso