BLOG | NGINX

Proxy inverso con NGINX Plus

NGINX - Parte de F5 - horizontal, negro, tipo RGB
Miniatura de Rick Nelson
Rick Nelson
Publicado el 10 de abril de 2014

NGINX ha ganado una fama justificable como un servidor web de muy alto rendimiento. Creo que muchas personas se dan cuenta de que NGINX también se puede utilizar como proxy inverso, pero es posible que no sean conscientes de lo poderoso que es.

¿Qué es un proxy inverso?

Comencemos dando un paso atrás y preguntando: ¿qué es un servidor proxy?  Creo que Wikipedia tiene una buena definición:

[Un] servidor proxy es un servidor (un sistema informático o una aplicação) que actúa como intermediario para las solicitudes de clientes que buscan recursos de otros servidores .

Entonces, un servidor proxy se ubica entre un cliente y el servidor real que aloja los datos que el cliente está buscando. Para el cliente, el servidor proxy parece ser el servidor back-end real, y para el servidor back-end, el servidor proxy parece un cliente. Para definir un servidor proxy inverso volvemos a Wikipedia :

[Un] proxy inverso es un tipo de servidor proxy que recupera recursos en nombre de un cliente desde uno o más servidores .

La diferencia es que un servidor proxy se ubica entre los clientes y un solo servidor back-end, pero un servidor proxy inverso se ubica frente a uno o más servidores back-end y decide cuál de ellos usar para cada solicitud.

¿Cuáles son los beneficios de utilizar un proxy inverso?

¿Por qué querrías utilizar un servidor proxy inverso?  Hay varios beneficios:

  • Concurrencia – Las aplicações de Internet a menudo involucran grandes cantidades de clientes, cada uno de los cuales abre múltiples conexiones, lo que genera una cantidad muy grande de conexiones a los servidores back-end. Muchos servidores web y servidores de aplicação no manejan bien grandes cantidades de conexiones (NGINX cuando se usa como servidor web es una excepción), por lo que agregar un proxy inverso que pueda manejar mejor múltiples conexiones puede resultar en una mejora marcada en el rendimiento del servidor back-end.
  • Resiliencia: si los clientes se conectan directamente a un servidor backend y este sufre una falla, todos los clientes actualmente conectados (o que intentan conectarse) al servidor ven fallar sus solicitudes. Un servidor proxy inverso puede monitorear el estado de los servidores back-end y dejar de enviar solicitudes a un servidor fallido hasta que vuelva a estar en servicio. Los clientes no ven un error porque el proxy inverso envía automáticamente sus solicitudes a los servidores back-end que aún están operativos.
  • Escalabilidad: debido a que un proxy inverso es la única “cara pública” del grupo de servidores back-end, puede agregar y quitar servidores en respuesta a cambios en la carga de tráfico.
  • Enrutamiento de capa 7: un proxy inverso ve el tráfico dirigido a todos los servidores y puede tomar decisiones inteligentes sobre dónde enviar cada solicitud, modificando las solicitudes y las respuestas según sea necesario. Puede tomar decisiones de enrutamiento basándose en un determinado encabezado HTTP en la solicitud, parte de una URL, la ubicación geográfica del cliente, etc.
  • Almacenamiento en caché: un proxy inverso es un excelente lugar para almacenar en caché. Generalmente, es mucho más eficiente almacenar en caché el contenido allí que enviar todas las solicitudes a servidores back-end y hacer que cada servidor back-end cree su propio caché.
  • Otras funciones – Al ubicarse frente a los servidores back-end, un proxy inverso también puede realizar otras funciones, como modelado de tráfico en función del ancho de banda o la tasa de solicitudes, limitación de conexión, integración con varios esquemas de autorización, monitoreo de actividad y mucho más.

Uso de NGINX Plus como proxy inverso

NGINX Plus introduce aún más funciones a las reconocidas capacidades de servidor web de NGINX Open Source, convirtiendo a NGINX Plus en un controlador de entrega de aplicação (ADC) con todas las funciones capaz de reemplazar a los dispositivos de hardware propietarios.

Las siguientes son solo algunas de las características disponibles en NGINX Plus.

Equilibrio de carga

Hay varios algoritmos de equilibrio de carga para elegir, tanto ponderados como no ponderados. También se admite la persistencia de sesión. NGINX Plus puede equilibrar la carga de HTTP, HTTPS, WebSocket, FastCGI, memcached, SCGI, SPDY [obsoleto por HTTP/2, que NGINX Plus también equilibra la carga] y uwsgi. Leer más .

Comprobaciones de estado

Se admite la monitorización pasiva y activa del estado del servidor backend. Si NGINX Plus no puede conectarse a un nodo, ese nodo se marca como inactivo. También se pueden configurar los controles de estado activos para que se ejecuten periódicamente en los nodos back-end. Además, la función de inicio lento se puede utilizar para que NGINX Plus aumente gradualmente el tráfico hacia un nodo que acaba de conectarse, para evitar saturarlo con una ráfaga de tráfico pesado. Leer más .

Enrutamiento de solicitudes

El tráfico se puede enrutar en función de cualquier parte de una solicitud, como la dirección IP del cliente, el nombre de host, el URI, la cadena de consulta, los encabezados, etc.

Reescritura de solicitudes y respuestas

Se puede modificar cualquier parte de una solicitud o respuesta, incluidos los encabezados, el cuerpo y la URI. NGINX Plus también permite agregar y eliminar encabezados. Leer más .

Almacenamiento en caché

Las respuestas se pueden almacenar en caché y puedes configurar los tipos de contenido que se almacenarán en caché y durante cuánto tiempo. También puedes purgar elementos de la caché. Leer más .

Compresión

Se admite la compresión Gzip, con un control preciso sobre qué contenido comprimir y cuándo utilizar la compresión. Leer más .

Procesamiento SSL/TLS

Se admiten el cifrado y descifrado SSL/TLS y el descifrado se puede realizar para muchos nombres de dominio utilizando diferentes certificados. Leer más .

Monitoreo y registro de actividad en vivo

Las estadísticas de NGINX Plus codificadas en formato JSON están disponibles a través de una simple solicitud HTTP. Se proporciona una página web de panel para mostrar las estadísticas, o puede proporcionarlas a herramientas de monitoreo personalizadas o de terceros. Los registros con formato personalizado se pueden configurar tanto para el registro local como para la exportación a syslog. Leer más .

Y mucho más

NGINX tiene muchas más características, como soporte para transmisión de video, soporte de proxy de correo, soporte GeoIP, reinicios elegantes y actualizaciones sin tiempo de inactividad, modelado de tráfico, limitación de conexión y mucho más. Para obtener más información, visítenos en nginx.com y nginx.org .


"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.