¿Qué es un proxy inverso? | Servidores proxy explicados

Un proxy inverso protege a los servidores web de los ataques, y puede proporcionar ventajas de rendimiento y fiabilidad. Más información sobre los proxys inversos y de reenvío.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Definir un servidor proxy
  • Describir las diferencias entre un proxy directo y uno inverso
  • Resumir las ventajas de utilizar un proxy inverso

Copiar enlace del artículo

¿Qué es un Proxy inverso?

Un proxy inverso es un servidor que se sitúa delante de los servidores web y reenvía las solicitudes del cliente (por ejemplo, el navegador web) a esos servidores web. Los proxies inversos suelen implementarse para ayudar a aumentar la seguridad, el rendimiento y la fiabilidad. Para entender mejor cómo funciona un proxy inverso y las ventajas que puede aportar, definamos primero qué es un servidor proxy.

¿Qué es un servidor proxy?

Un proxy de reenvío, con frecuencia conocido como proxy, servidor proxy o proxy web, es un servidor que se sitúa delante de un grupo de máquinas cliente. Cuando esos ordenadores realizan solicitudes a sitios y servicios en Internet, el servidor proxy intercepta esas peticiones y luego se comunica con los servidores web en nombre de esos clientes, como un intermediario.

Por ejemplo, nombraremos 3 ordenadores involucrados en una típica comunicación por proxy:

  • A: Esto es un ordenador personal del usuario
  • B: Esto es un servidor proxy de reenvío
  • C: Esto es un servidor de origen de un sitio web (donde se almacenan los datos del sitio web)
Flujo de proxy de reenvío

En una comunicación estándar de Internet, el ordenador A se comunicaría directamente con el ordenador C, y el cliente enviaría las solicitudes al servidor de origen, y el servidor de origen respondería al cliente. Cuando hay un proxy de reenvío, A enviará las solicitudes a B, que a su vez reenviará la solicitud a C. C enviará entonces una respuesta a B, que reenviará la respuesta a A.

¿Por qué alguien añadiría este intermediario adicional a su actividad en Internet? Hay varias razones por las alguien querría utilizar un proxy de reenvío:

  • Para evitar las restricciones de navegación estatales o institucionales - Algunos gobiernos, escuelas y otras organizaciones utilizan firewalls para dar a sus usuarios acceso a una versión limitada de Internet. Se puede utilizar un proxy de reenvío para eludir estas restricciones, ya que permiten que el usuario se conecte al proxy en lugar de hacerlo directamente a los sitios que está visitando.
  • Para bloquear el acceso a determinados contenidos - A la inversa, los proxies también pueden configurarse para bloquear el acceso de un grupo de usuarios a determinados sitios. Por ejemplo, la red de un colegio se puede configurar para conectarse a la web a través de un proxy que active reglas de filtrado de contenidos, y rechace el reenvío de respuestas de Facebook y otros sitios de redes sociales.
  • Proteger su identidad en línea - En algunos casos, los usuarios habituales de Internet lo que quieren es un mayor anonimato en línea; pero en otros casos, los usuarios de Internet viven en lugares donde los gobiernos actúan con dureza contra los disidentes políticos. Criticar al gobierno en un foro web o en las redes sociales puede acarrear penas de cárcel o multas. Si uno de estos disidentes utiliza un proxy de reenvío para conectarse a un sitio web en el que publica comentarios políticamente delicados, la dirección IP utilizada para publicar los comentarios será más difícil de rastrear hasta el disidente. Solo será visible la dirección IP del servidor proxy.

¿En qué aspecto es diferente un proxy inverso?

Un proxy inverso es un servidor que se sitúa delante de uno o varios servidores web, e intercepta las solicitudes de los clientes. Esto es diferente de un proxy de reenvío, en el que el proxy se sitúa delante de los clientes. Con un proxy inverso, cuando los clientes envían solicitudes al servidor de origen de un sitio web, el servidor de proxy inverso intercepta esas solicitudes en el perímetro de la red. El servidor proxy inverso enviará entonces las solicitudes al servidor de origen y recibirá las respuestas del servidor de origen.

La diferencia entre un proxy de reenvío y uno inverso es sutil pero importante. Una forma simplificada de resumirla sería decir que un proxy de reenvío se sitúa delante de un cliente y se asegura de que ningún servidor de origen se comunique nunca directamente con ese cliente específico. Por otro lado, un proxy inverso se sitúa delante de un servidor de origen y se asegura de que ningún cliente se comunique nunca directamente con ese servidor de origen.

Una vez más, lo ejemplificaremos nombrando los ordenadores implicados:

  • D: Cualquier número de ordenadores personales de los usuarios
  • E: Esto es un servidor de proxy inverso
  • F: Uno o más servidores de origen
Flujo de proxy inverso

Lo habitual es que todas las solicitudes de D vayan directamente a F, y F enviaría las respuestas directamente a D. Con un proxy inverso, todas las solicitudes de D irían directamente a E, y E enviaría sus solicitudes a F y recibiría las respuestas de F. E pasaría entonces las respuestas apropiadas a D.

A continuación, describiremos algunas de las ventajas de un proxy inverso:

  • Load balancing - Puede que un sitio web popular, que recibe millones de usuarios cada día, no sea capaz de manejar todo el tráfico entrante del sitio con un único servidor de origen. En su lugar, el sitio puede estar distribuido entre un conjunto de servidores diferentes, todos ellos manejando solicitudes para el mismo sitio. En este caso, un proxy inverso puede proporcionar una solución de equilibrio de carga, que distribuirá el tráfico entrante de manera uniforme entre los diferentes servidores para evitar que un solo servidor se sobrecargue. En caso de que un servidor falle por completo, otros servidores pueden intervenir para gestionar el tráfico.
  • Protección ante ataques - Con un proxy inverso instalado, un sitio o servicio web no necesita revelar nunca la dirección IP de su(s) servidor(es) de origen. Esto dificulta que los atacantes aprovechen un ataque dirigido contra ellos, como un ataque DDoS. En cambio, los atacantes solo podrán dirigirse al proxy inverso, como la CDN de Cloudflare, que contará con una seguridad más estricta y más recursos para defenderse de un ciberataque.
  • Equilibrio de carga global del servidor (GSLB) - En esta forma de equilibrio de carga, un sitio web puede estar distribuido en varios servidores de todo el mundo y el proxy inverso enviará a los clientes al servidor que esté geográficamente más cerca de ellos. Esto reduce las distancias que deben recorrer las solicitudes y las respuestas, lo que minimiza los tiempos de carga.
  • Almacenamiento en caché - Un proxy inverso también puede almacenar en caché el contenido, lo que da lugar a un rendimiento más rápido. Por ejemplo, si un usuario en París visita un sitio web con proxy inverso con servidores web en Los Ángeles, el usuario puede conectarse a un servidor proxy inverso local en París, que tendrá que comunicarse entonces con un servidor de origen en Los Ángeles. El servidor proxy puede entonces almacenar en caché (o guardar temporalmente) los datos de la respuesta. Los siguientes usuarios parisinos que naveguen por el sitio obtendrán entonces la versión almacenada en caché localmente desde el servidor proxy inverso parisino, lo que resulta en un rendimiento mucho más rápido.
  • Encriptación SSL - Encriptar y desencriptar las comunicaciones SSL (o TLS) para cada cliente puede ser costoso a nivel informático para un servidor de origen. Un proxy inverso puede configurarse para desencriptar todas las solicitudes entrantes y encriptar todas las respuestas salientes, lo que libera valiosos recursos en el servidor de origen.

Cómo implementar un proxy inverso

Algunas empresas crean sus propios proxies inversos, pero esto requiere intensos recursos de ingeniería de software y hardware, así como una importante inversión en hardware físico. Una de las formas más fáciles y rentables de aprovechar todas las ventajas de un proxy inverso es contratar un servicio de CDN. Por ejemplo, la CDN de Cloudflare proporciona todas las funciones de rendimiento y seguridad mencionadas anteriormente, así como muchas otras.