¿Qué es un proxy inverso?
Un proxy inverso se utiliza para proporcionar servicios de equilibrio de carga y, cada vez más, para reforzar la seguridad de las aplicaciones web en puntos estratégicos de la red mediante firewalls de aplicaciones web, firewalls de entrega de aplicaciones e inspección profunda de contenido.
¿Qué es un proxy inverso?
En el ámbito de las redes y el tráfico web, un proxy es un dispositivo o servidor que actúa en nombre de otros dispositivos. Se sitúa entre dos entidades y presta un servicio. Los proxies son soluciones de hardware o software que se sitúan entre el cliente y el servidor para gestionar las solicitudes y, en ocasiones, las respuestas.
Normalmente, un servidor proxy inverso se sitúa delante de los servidores web y reenvía a estos las solicitudes de los clientes (por ejemplo, de un navegador web). A continuación, los recursos solicitados se devuelven al cliente como si procedieran del propio servidor proxy. Esto proporciona un nivel adicional de abstracción y control para garantizar que el tráfico de red entre clientes y servidores fluya sin problemas. Un proxy inverso también permite dirigir las solicitudes en función de una amplia variedad de parámetros, como el dispositivo del usuario, la ubicación, las condiciones de la red, el estado de la aplicación e incluso la hora del día.
¿Cuál es la diferencia entre un proxy inverso y un balanceador de carga?
Los servidores proxy inversos y los balanceadores de carga son componentes de una arquitectura informática cliente-servidor. Ambos actúan como intermediarios en la comunicación entre los clientes y los servidores, y realizan funciones que mejoran la eficiencia. Pueden implementarse como dispositivos dedicados y diseñados específicamente para este fin, pero en las arquitecturas web modernas son cada vez más aplicaciones de software que se ejecutan en hardware convencional. Aunque parecen desempeñar funciones similares, veamos cuándo y por qué suelen implementarse en un sitio web.
Un balanceador de carga distribuye las solicitudes entrantes de los clientes entre un grupo de servidores para garantizar una velocidad satisfactoria y un funcionamiento óptimo. Los balanceadores de carga suelen implementarse cuando un sitio necesita varios servidores porque el volumen de solicitudes es demasiado elevado para que un único servidor pueda gestionarlo de forma eficiente. La implementación de varios servidores también elimina los puntos únicos de fallo, lo que aumenta la fiabilidad del sitio web. Por lo general, todos los servidores alojan el mismo contenido, y la función del balanceador de carga es distribuir la carga de trabajo de forma que se aproveche al máximo la capacidad de cada servidor, se evite la sobrecarga de cualquiera de ellos y se proporcione al cliente la respuesta más rápida posible.
Un proxy inverso acepta una solicitud de un cliente, la reenvía a un servidor que puede atenderla y devuelve la respuesta del servidor al cliente. Mientras que implementar un balanceador de carga solo tiene sentido cuando se dispone de varios servidores, a menudo resulta conveniente implementar un proxy inverso incluso con un único servidor web o de aplicaciones. Puede considerar el proxy inverso como la «cara pública» de un sitio web. Su dirección es la que se anuncia para el sitio web y se sitúa en el perímetro de la red del sitio para aceptar solicitudes de navegadores web y aplicaciones móviles que piden el contenido alojado en él. Un proxy inverso proporciona un nivel adicional de abstracción y control para garantizar que el tráfico de red fluya sin problemas entre los clientes y los servidores. El proxy inverso proporciona:
- Mayor seguridad. No se muestra información sobre los servidores backend fuera de la red interna, por lo que los clientes maliciosos no pueden acceder directamente a ellos para aprovechar posibles vulnerabilidades. Muchos servidores proxy inversos incluyen funciones que ayudan a proteger los servidores backend frente a ataques distribuidos de denegación de servicio (DDoS), por ejemplo, rechazando el tráfico procedente de determinadas direcciones IP de clientes (inclusión en listas de bloqueo) o limitando el número de conexiones aceptadas de cada cliente.
- Mayor escalabilidad y flexibilidad. Como los clientes solo ven la dirección IP del proxy inverso, puede modificar libremente la configuración de su infraestructura de backend. Esto resulta especialmente útil en un entorno con equilibrio de carga, donde puede aumentar o reducir el número de servidores para adaptarlo a las fluctuaciones del volumen de tráfico.
- Aceleración web. Los proxies inversos pueden reducir el tiempo necesario para generar una respuesta y devolverla al cliente, mejorando así el rendimiento mediante técnicas como la aceleración SSL, compresión inteligente y el almacenamiento en caché. Los proxies inversos también permiten ofrecer servicios de seguridad federados para varias aplicaciones mediante la aplicación de medidas de seguridad para aplicaciones web.
¿Por qué es importante un proxy inverso?
Un proxy inverso se utiliza para proporcionar servicios de equilibrio de carga que permitan ofrecer experiencias web más fluidas y, cada vez más, para reforzar la seguridad de las aplicaciones web en puntos estratégicos de la red mediante firewalls de aplicaciones web, firewalls de entrega de aplicaciones y la inspección profunda de contenidos.
Cuando se combina con implementaciones en la nube, un proxy inverso puede habilitar arquitecturas de expansión a la nube y de aplicaciones divididas que ofrecen las ventajas económicas de la nube sin comprometer el control ni la seguridad.
¿Cómo funciona un proxy inverso?
Un proxy inverso puede actuar como un simple servicio de reenvío o participar activamente en el intercambio entre el cliente y el servidor. Cuando el proxy trata al cliente y al servidor como entidades independientes mediante la implementación de dos pilas de red, se denomina proxy completo.
Un proxy completo crea una conexión TCP de cliente y otra conexión TCP de servidor independiente, dejando una pequeña separación entre ambas. El cliente se conecta al proxy por un extremo y el proxy establece una conexión independiente con el servidor. La comunicación es bidireccional en ambos lados. Las conexiones del lado del cliente y del lado del servidor nunca se mezclan, ya que son independientes.
¿Cómo gestiona F5 las funciones de proxy inverso?
La función de un proxy inverso puede desempeñarla un dispositivo, un software o un servicio, en función de la complejidad del entorno y de las necesidades de la organización.
Entornos nativos de la nube
Ideal para entornos nativos de la nube, NGINX Plus es un proxy inverso basado en software que realiza el balanceo de carga, el enrutamiento de capa 7 y la optimización del rendimiento web, de forma similar a un dispositivo de hardware. NGINX Plus también ayuda a mejorar el rendimiento, la fiabilidad, la seguridad y la escalabilidad de los sitios web. NGINX Plus es mucho más económico que las soluciones basadas en hardware con capacidades similares. Las completas funciones de balanceo de carga y proxy inverso de NGINX Plus permiten crear una red de entrega de aplicaciones altamente optimizada. NGINX Plus puede implementarse tanto en la nube pública como en centros de datos privados por un coste inferior al de un proxy completo.
Entornos híbridos
Para entornos más complejos e híbridos, el sistema F5 BIG-IP es un proxy completo que puede implementarse como un servidor proxy inverso completo capaz de interceptar, inspeccionar e interactuar con solicitudes y respuestas. Esto incluye las funciones básicas de equilibrio de carga y optimización del rendimiento web, así como servicios más avanzados de gestión del tráfico como seguridad de la capa de aplicación, aceleración web, enrutamiento de páginas y acceso remoto seguro.

