¿Qué es un proxy inverso y cómo funciona?

ArtemisDiana/Shutterstock.com

Los proxies inversos son una herramienta útil en el conjunto de herramientas de cualquier administrador de sistemas. Tienen muchos usos, incluido el equilibrio de carga, la protección contra ataques DDOS.

¿Qué son los proxies inversos?

Un proxy común, denominado proxy de reenvío, es un servidor al que se redirige la conexión de un usuario. En muchos sentidos, es como una VPN normal que se encuentra frente a su conexión a Internet. Las VPN son un ejemplo común de esto, pero también incluyen cosas como cortafuegos escolares, que pueden bloquear el acceso a cierto contenido.

Un proxy inverso funciona un poco diferente. Es una herramienta de back-end utilizada por los administradores del sistema. En lugar de conectarse directamente al sitio web que sirve el contenido, un proxy inverso como NGINX se encuentra en el medio. Cuando recibe una solicitud de un usuario, la reenvía o «envía» la solicitud al servidor final. Este servidor se denomina «servidor de origen» porque en realidad responde a las solicitudes.

Los proxies inversos son herramientas de back-end que permiten al usuario saber si están siendo enrutados a través de un proxy de reenvío, como una VPN o un firewall. Por lo que el usuario sabe, solo se está conectando al sitio web. Todo está escondido detrás del proxy inverso y también tiene muchas ventajas.

Pero este efecto también ocurre a la inversa. El usuario no tiene conexión directa con el servidor de origen y solo ve un conjunto de solicitudes de la IP del proxy inverso. Esto puede ser un problema, pero la mayoría de los servicios de proxy como NGINX agregan encabezados X-Forwarded-For solicitar. Estos encabezados informan al servidor de origen de la dirección IP real del cliente.

¿Para qué se utilizan los proxies inversos?

Los proxies inversos tienen un concepto simple, pero han demostrado ser una herramienta sorprendentemente útil con muchos casos de uso inesperados.

READ  Whatsapp iOS proporciona actualización para reacciones de mensajes beta

Balanceo de carga

Una de las principales ventajas de los proxies inversos es lo fáciles que son. Dado que simplemente reenvían las solicitudes, no tienen que hacer un montón de procesamiento, especialmente en los casos en que es necesario consultar la base de datos.

Esto significa que el cuello de botella suele ser el servidor de origen, pero con un proxy inverso frente a él, puede tener fácilmente varios servidores de origen. Por ejemplo, un proxy puede enviar el 50 % de las solicitudes a un servidor y el 50 % a otro servidor, lo que duplica la capacidad de un sitio web. Los servicios como HAProxy están diseñados para manejar esto muy bien.

Este es un caso de uso muy común, y dado que la mayoría de los proveedores de servicios en la nube como Amazon Web Services (AWS) ofrecen balanceo de carga como un servicio, tendrá problemas para configurarlo usted mismo. Con la automatización de la nube, puede escalar automáticamente la cantidad de servidores de origen en respuesta al tráfico, una característica llamada «escalado automático».

Los balanceadores de carga como Elastic Load Balancer de AWS se pueden configurar para que se reconfiguren automáticamente cuando sus servidores de origen suban o se caigan, todo ello posible gracias a un proxy inverso bajo el capó.

Relacionado: Cómo comenzar con los Elastic Load Balancers de AWS

almacenamiento en caché

Debido a que el proxy inverso suele ser mucho más rápido para responder que el servidor de origen, una técnica llamada almacenamiento en caché se usa comúnmente para acelerar las solicitudes en rutas comunes. El almacenamiento en caché es cuando los datos de la página se almacenan en un proxy inverso y se solicitan al servidor de origen solo una vez cada pocos segundos/minutos. Esto reduce drásticamente el estrés en el servidor de origen.

READ  El error de Google Messages enciende la cámara y agota la batería

Por ejemplo, este artículo que está leyendo ahora es servido por WordPress, que necesita comunicarse con una base de datos SQL para obtener el contenido y los metadatos del artículo. Hacer eso para cada actualización de página es un desperdicio, porque la página realmente no cambia. Por lo tanto, esta ruta se puede almacenar en caché y el proxy inverso devolverá la última respuesta al siguiente usuario, sin volver a molestar a WordPress.

Una red especializada de proxies inversos que almacena en caché su contenido se denomina red de entrega de contenido o CDN. como CDN Llamarada de la nube O rápidamente Los sitios web más grandes se usan más comúnmente para acelerar la entrega global. Los servidores de todo el mundo que almacenan contenido en caché se denominan «nodos de borde», y tener muchos de ellos puede hacer que su sitio web sea más ágil.

Protección de red y privacidad

Debido a que el usuario no sabe qué hay detrás del proxy inverso, no puede atacar sus servidores de origen directamente. De hecho, los proxies inversos generalmente se usan con servidores de origen en subredes privadas, lo que significa que no tienen conexiones entrantes a Internet exterior.

Esto mantiene la privacidad de la configuración de su red y, aunque la seguridad a través de la ofuscación nunca es infalible, es mejor que dejarla abierta a ataques.

Esta creencia inherente también resulta útil al planificar su red. Por ejemplo, un servidor API que se comunica con una base de datos es similar a un proxy inverso. La base de datos sabe que se puede confiar en el servidor de la API en la subred privada, y el servidor de la API actúa como un cortafuegos para la base de datos, permitiendo solo conexiones válidas a través de ella.

READ  Apple advierte a todos los usuarios que revisen sus aplicaciones: el nuevo botón salvará su gran error

Interfaz configurable

Una de las ventajas de los proxies inversos como NGINX es lo altamente configurables que son. A menudo, son útiles para colocarlos frente a otros servicios para configurar cómo los usuarios acceden a esos servicios.

Por ejemplo, NGINX puede calificar las solicitudes de límite para rutas específicas, lo que puede evitar que los abusadores realicen miles de solicitudes a los servidores de origen desde una sola IP. No detendrá los ataques DDOS, pero es bueno tenerlo.

NGINX también puede reenviar tráfico desde múltiples nombres de dominio con bloques de «servidor» configurables. Por ejemplo, puede enviar solicitudes example.com a su servidor de origen, pero envíe api.example.com O a su servidor API dedicado files.example.com a su almacenamiento de archivos, y así sucesivamente. Cada servidor tiene su propia configuración y reglas.

NGINX también puede agregar funciones adicionales además de los servidores de origen existentes, como certificados HTTPS centralizados y configuración de encabezado.

A veces, es útil tener NGINX en la misma máquina que otro servicio local para servir contenido de ese servicio. Por ejemplo, las API web de ASP.NET usan un servidor web interno llamado Kestrel, que es bueno para responder a las solicitudes, pero no mucho más. Es común ejecutar Kestrel en un puerto privado y usar NGINX como proxy inverso configurable.

Registro centralizado

Es simple, pero dado que la mayor parte de su tráfico pasa por un solo servicio, es más fácil verificar los registros. El registro de acceso de NGINX contiene mucha información útil sobre su tráfico y, aunque no supera las características de un servicio como Google Analytics, es una gran información.

Relacionado: Cómo configurar un panel de análisis y monitoreo de Elasticsearch para su negocio

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio