Introducing G2.ai, the future of software buying.Try now

Proxy inverso: cómo funciona, ejemplos y casos de uso

8 de Octubre de 2024
por Sagar Joshi

En redes, un proxy actúa como intermediario entre el cliente y el servidor, gestionando solicitudes y respuestas en nombre de los otros dispositivos.

Los proxies inversos, sin embargo, se sitúan frente a los servidores web. Reenvían las solicitudes de los clientes al servidor y devuelven la respuesta del servidor a los clientes. Desde la perspectiva del cliente, parece como si la respuesta proviniera del servidor web original cuando en realidad proviene del servidor proxy inverso.

El proxy inverso ofrece una capa entre el cliente y el servidor, proporcionando un control adicional para asegurar que el tráfico de la red fluya sin problemas. Muchas organizaciones lo utilizan con software de balanceo de carga para distribuir el tráfico alto mientras mantienen las funcionalidades adecuadas del sitio web.

La capa de proxy inverso frente al servidor web escanea la solicitud del cliente en busca de actividad maliciosa antes de que el tráfico llegue a su servidor web.

¿Cómo funciona un proxy inverso?

Los proxies inversos tienen un propósito: proteger a los servidores web del tráfico entrante. Reciben solicitudes de conexión, las envían a diferentes servidores, y luego establecen una conexión con el servidor que procesa la solicitud.

A continuación se presentan tres etapas en las que operan los proxies inversos.

  • Recolección de solicitudes: El proxy inverso intercepta las solicitudes entrantes provenientes de los clientes.
  • Protocolo de control de transmisión (TCP) de tres vías: Se establece una conexión con el proxy inverso, que termina la conexión inicial e inicia una nueva conexión con el servidor.
  • Conexión al servidor de origen: La solicitud del cliente se reenvía al servidor utilizando una dirección IP de señuelo para enmascarar el servidor de origen.

La mayoría de las aplicaciones web utilizan un proxy inverso para manejar solicitudes de un navegador web. No permiten que los clientes se conecten directamente con un servidor de origen. Esto protege los datos sensibles y minimiza el riesgo de acceso no autorizado.

El proxy inverso también examina las respuestas de los servidores en busca de cualquier cosa que un hacker malicioso pueda usar para obtener acceso no autorizado a recursos internos.

A continuación se explica cómo funciona el proxy inverso en la comunicación por Internet.

A continuación se explica cómo funciona el proxy inverso en la comunicación por Internet:

  • Internet: ¿Dónde puedo encontrar “media.example.com”?
  • DNS: Está en esta dirección de protocolo de Internet (IP) X.XX.XXX.X. Es la dirección IP pública de tu router.
  • Internet: Router, ¿dónde está media.example.com?
  • Router: Esta es una solicitud del puerto 80/443. Reenvío todas las solicitudes en esos puertos a 192.168.1.10.
  • Internet: Hola 192.168.1.10 en el puerto 80/443, ¿dónde está media.example.com?
  • Proxy inverso: Está aquí en el puerto 8080. Te lo reenviaré en el puerto 80/443.

¿Quieres aprender más sobre Software de Balanceo de Carga? Explora los productos de Balanceo de carga.

¿Qué hacen los servidores proxy inversos?

Los servidores proxy inversos se encargan de múltiples cosas al buscar información en línea. Estos servidores pueden:

  • Ocultar las características y la existencia de un servidor de origen.
  • Realizar aceleración de seguridad de la capa de transporte (TLS) con hardware para realizar cifrado TLS en lugar de sitios web seguros.
  • Balancear las cargas de solicitudes entrantes entre servidores, apoyando sus áreas de aplicación.
  • Reducir la carga en el servidor de origen actuando como un servidor de aceleración web que puede almacenar en caché contenido estático y dinámico.
  • Realizar pruebas multivariadas y pruebas A/B sin insertar JavaScript directamente en las páginas.
  • Liberar recursos del servidor durante el tiempo de transferencia sirviendo a los clientes páginas generadas dinámicamente bit a bit, incluso cuando se producen de una vez.
  • Entregar solicitudes entrantes a múltiples servidores web dentro de una red de área local mientras las evalúan a través de una única dirección IP pública.

¿Por qué necesitas un servidor proxy inverso?

Los proxies inversos facilitan el balanceo de carga para interfaces de programación de aplicaciones (APIs) y aplicaciones web. Puedes descargar fácilmente servicios de aplicaciones, mejorando el rendimiento a través de la aceleración SSL, compresión y almacenamiento en caché. Ofrece una capa adicional de abstracción con lo siguiente.

Mayor seguridad, escalabilidad y flexibilidad

La información de tu servidor backend está oculta a todos los clientes, evitando que los hackers accedan a ella o exploten vulnerabilidades. Los proxies inversos también ayudan a prevenir que el servidor de origen sufra ataques de denegación de servicio distribuido (DDoS) al rechazar el tráfico de ciertas direcciones IP o limitar las solicitudes de conexión de los clientes.

Dado que el servidor de origen no está expuesto directamente, puedes cambiar fácilmente la configuración del backend. Esto es útil para entornos balanceados por carga, donde puedes ajustar las fluctuaciones del volumen de tráfico escalando el número de servidores hacia arriba o hacia abajo.

Con un proxy inverso, nunca necesitas revelar la dirección IP de tu servidor de origen. Todas las solicitudes van al proxy inverso, como la red de entrega de contenido (CDN) de Cloudflare, que tendrá una seguridad más robusta y recursos extensos para proteger contra ciberataques.

Compresión a nivel de proxy

Los proxies inversos reducen la cantidad de datos que necesitan compartirse con la red. Muchos servidores proxy utilizan compresión Gzip en lenguaje de marcado de hipertexto (HTML), hojas de estilo en cascada (CSS), Notación de Objetos de JavaScript (JSON), JavaScript, Lenguaje de Marcado Extensible (XML) y varios otros tipos de contenido.

Balanceo de carga

Gestionar millones de usuarios diariamente en un sitio web con un solo servidor de origen se vuelve complicado. Por lo general, dichos sitios utilizan un grupo distribuido de servidores, manejando todas las solicitudes al mismo tiempo. El proxy inverso y el software de balanceo de carga ofrecen una solución en tales casos al distribuir las solicitudes entrantes entre diferentes servidores y minimizar la sobrecarga. En casos de falla del servidor, la carga es gestionada por otros servidores en el grupo.

Para aplicaciones globales, los proxies inversos pueden enrutar las solicitudes de los clientes al servidor más cercano a ellos para reducir la latencia y acelerar los tiempos de respuesta. Esta distribución geográfica es un beneficio clave para sitios web a gran escala con tráfico global.

Almacenamiento en caché

Un servidor proxy inverso almacena en caché contenido para mejorar el rendimiento. Por ejemplo, si una persona en India visita un sitio web con proxy inverso con servidores en Los Ángeles, podría conectarse a un proxy inverso local en India. El proxy se comunicaría con el servidor en Los Ángeles.

El servidor proxy inverso local en India almacena en caché los datos de respuesta. La próxima vez que alguien de India intente visitar el sitio web, el proxy inverso local le muestra la versión en caché del sitio web, haciendo que su rendimiento sea más rápido.

Cifrado

Aplicar cifrado de capa de sockets seguros (SSL) o descifrado puede ser computacionalmente costoso de ejecutar en el servidor de origen. En tales casos, las organizaciones utilizan un proxy inverso para descifrar todas las solicitudes entrantes y cifrar las respuestas salientes.

Libera recursos valiosos en el servidor de origen, haciéndolo más efectivo en la ejecución de operaciones críticas.

Proxy inverso vs. proxy directo

Un proxy inverso se sitúa frente al servidor, gestionando las solicitudes entrantes del cliente. Por otro lado, un proxy directo (comúnmente llamado proxy) se sitúa frente a las máquinas cliente. Cuando estas máquinas se comunican con Internet y envían solicitudes, el servidor proxy las interpreta y se comunica con el servidor web en nombre de los clientes.

Para entender una comunicación típica de proxy directo en detalle, tomemos un ejemplo:

Consideremos tres computadoras domésticas {A}, un servidor proxy directo {B}, y un servidor de origen de un sitio web {C}.

flujo de proxy directo

Fuente: Cloudflare

Sin un servidor proxy, una computadora A se conectaría directamente con el servidor C para enviar la solicitud y obtener respuestas del servidor. Con un proxy directo, A envía solicitudes a B, que las reenvía a C. La respuesta sigue el mismo camino, manteniendo al cliente (A) anónimo.

Por el contrario, los proxies inversos interceptan las solicitudes de los clientes en el borde de la red frente al servidor de origen de un sitio web.

La diferencia entre un proxy directo y un proxy inverso es sutil. Mientras que un proxy inverso asegura que ningún cliente se comunique directamente con el servidor de origen, un proxy directo asegura que ningún servidor de origen se comunique directamente con el cliente específico.

A continuación se presentan algunas diferencias notables entre proxy inverso y proxy directo.

  • Uso: Los proxies directos ayudan a monitorear y controlar el contenido web al que acceden los empleados y a prevenir que el tráfico malicioso llegue a los servidores de origen. Utilizan contenido en caché para la aceleración web, mejorando el tiempo de carga y la experiencia de los usuarios.
  • Dirección del tráfico: En el caso del proxy inverso, la dirección del flujo de tráfico es entrante (internet al servidor). Para el proxy directo, es del cliente al servidor.
  • Almacenamiento en caché: El proxy inverso almacena en caché contenido estático para el balanceo de carga. Los proxies directos almacenan en caché contenido frecuentemente accedido.
  • Manejo de SSL/TLS: Los proxies inversos terminan las conexiones SSL/TLS para los servidores, mientras que los proxies directos inician estas conexiones en nombre de los clientes.
  • Escalabilidad: Los proxies inversos escalan con el número de servidores. Los proxies directos escalan con el número de clientes.

Casos de uso comunes de proxies inversos

A continuación se presentan algunos casos de uso comunes de proxies inversos en una organización.

  • Servir contenido estático: Un sitio web tiene una mezcla de contenido dinámico y estático. Algunas organizaciones configuran su servidor proxy inverso para servir contenido estático, reduciendo el tiempo de carga y liberando más potencia para el renderizado de contenido dinámico.
  • Prevenir violaciones de datos: Los proxies inversos cifran los datos transmitidos a través de una red, ayudando a las empresas a protegerse contra violaciones de datos.
  • Enrutar solicitudes de clientes basadas en la geolocalización: Un proxy inverso puede enrutar las solicitudes de los clientes al servidor que esté más cerca de ellos según su ubicación geográfica.
  • Proteger puertas de enlace web: Los proxies inversos ocultan la identidad del servidor de origen, manteniéndolo a salvo de actores maliciosos.

Aparte de estos, los proxies inversos se utilizan en redes de entrega de contenido para almacenar contenido en caché en los bordes de la red más cercanos al cliente y en servicios web móviles para optimizar imágenes y scripts para dispositivos móviles.

Gestiona eficientemente el flujo de tráfico alto

En general, los proxies inversos son herramientas versátiles con aplicaciones en múltiples casos de uso. Para cualquier negocio que tenga dificultades para gestionar un tráfico pesado, el proxy inverso ofrece una solución para hacer que el tráfico fluya sin problemas. Mejora la eficiencia del servidor y añade una capa adicional de seguridad, asegurando que el tráfico web y los hackers se mantengan fuera de tus redes.

Elige el proxy inverso y el balanceador de carga adecuados para tu negocio y mantén tu sitio web funcionando eficientemente.

Aprende más sobre cómo un balanceador de carga distribuye el tráfico entrante alto en una aplicación mientras asegura una funcionalidad adecuada.

Editado por Monishka Agrawal

Sagar Joshi
SJ

Sagar Joshi

Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.