Presentamos NGINX Plus R7

NGINX | 16 de septiembre de 2015

NGINX, Inc. se enorgullece de anunciar la disponibilidad de NGINX Plus Release 7 (R7), la versión más reciente de nuestra plataforma de entrega de aplicaciones. La actualización ofrece una implementación totalmente compatible con el nuevo estándar web HTTP/2, la primera de este tipo para un servidor web líder. NGINX Plus puede implementarse como puerta de enlace HTTP/2 de frontend y acelerador tanto para servicios web nuevos como existentes.

[Nota del editor – Esta entrada se ha actualizado para hacer referencia a la API de NGINX Plus, que sustituye y deja obsoleto el módulo de estado independiente mencionado en la versión original de la entrada.]

La última actualización también incorpora mejoras sustanciales y nuevas funcionalidades para garantizar que las organizaciones puedan ofrecer sus aplicaciones con el rendimiento, la seguridad y la fiabilidad que requieren las aplicaciones empresariales. Entre ellas se incluyen importantes mejoras que facilitan la supervisión, la gestión y la depuración de las aplicaciones, así como funciones adicionales de seguridad y optimización del rendimiento.

Editor: Para obtener más información sobre las principales novedades de NGINX Plus R7, consulte estas entradas relacionadas del blog:

Consulte también nuestro seminario web bajo demanda, ¿Qué novedades incluye NGINX Plus R7?

Entre las principales características de esta versión se incluyen:

  • Implementación de HTTP/2 totalmente compatible – NGINX Plus ofrece ahora una implementación totalmente compatible con el nuevo estándar web HTTP/2. NGINX Plus puede implementarse como puerta de enlace HTTP/2 de frontend y acelerador tanto para servicios web nuevos como existentes.

    La compatibilidad con HTTP/2 solo está disponible en el paquete opcional nginx-plus-http2. Los paquetes nginx-plus y nginx-plus-extras son compatibles con SPDY y actualmente se recomiendan para sitios en producción debido a su mayor compatibilidad con navegadores y a la madurez del código.Nota: Según las pruebas realizadas por los usuarios del parche en fase alfa, y gracias al apoyo inicial de los copatrocinadores corporativos Automattic y Dropbox, la versión final de código abierto de HTTP/2 estará disponible tras el lanzamiento de R7.
  • Rendimiento significativamente mejorado – NGINX Plus R7 admite grupos de subprocesos para E/S asíncrona. Esto acelera las cargas de trabajo que implican un alto nivel de E/S de disco, como el almacenamiento en caché de contenido. Nuestras pruebas de rendimiento indican que los grupos de subprocesos pueden multiplicar hasta por 9 el rendimiento de determinadas cargas de trabajo.

    NGINX Plus R7 también admite optimizaciones de la distribución de sockets para aumentar el rendimiento en servidores multinúcleo. Nuestras pruebas de rendimiento indican que esto puede multiplicar por más de 3 tanto las solicitudes por segundo como la reducción de la latencia. La distribución de sockets utiliza la opción SO_REUSEPORT y actualmente requiere Linux 3.9 o posterior, o DragonFly BSD.
  • Mejoras en el control de acceso y la seguridad – Las funciones nuevas y ampliadas de NGINX Plus ayudan a mejorar la seguridad y la fiabilidad de sus aplicaciones. Los controles de acceso y los límites de conexión para los servicios TCP le permiten aplicar reglas de protección a todos los servicios gestionados por NGINX, mientras que la compatibilidad con la autenticación NT LAN Manager (NTLM) le permite implementar NGINX Plus delante de aplicaciones heredadas de Microsoft.
  • Supervisión y diagnóstico mejorados – NGINX Plus añade datos de supervisión y estadísticas aún más detallados a las herramientas existentes de estado y panel de control. Realice un seguimiento de los errores de los clientes, la actividad interna de NGINX y la carga SSL de sus servicios para ayudarle a identificar problemas y optimizar su configuración.
  • Panel de control de NGINX Plus actualizado e interactivo – El panel de control de supervisión de la actividad en tiempo real de NGINX Plus se ha ampliado considerablemente y ahora ofrece una interfaz con pestañas que proporciona información más detallada sobre el rendimiento y el estado de NGINX. Puede profundizar en los datos para identificar y comprender los problemas de su infraestructura y realizar cambios rápidamente en sus configuraciones.

«Durante el último año, hemos ayudado a cientos de nuevos clientes a implementar sus aplicaciones con NGINX Plus, y nuestra última versión se centra en ofrecerles aún más herramientas para garantizar la mejor experiencia posible a sus usuarios», afirma Gus Robertson, CEO de NGINX, Inc. «Somos el tejido que sustenta la infraestructura de nuestros clientes, lo que nos sitúa en una posición única para ofrecer una visibilidad y un control sin precedentes sobre las aplicaciones que implementan. Nos tomamos muy en serio el papel fundamental que desempeñamos en el negocio de nuestros clientes, y las nuevas funcionalidades de NGINX Plus R7 son un reflejo de ello».

La adopción de NGINX ha crecido considerablemente en los últimos meses. NGINX es el servidor web número 1 entre los 100.000 sitios web más importantes, y casi la mitad de los sitios con más tráfico del mundo utilizan NGINX para ofrecer sus aplicaciones a miles de millones de usuarios. NGINX, Inc. sigue invirtiendo considerablemente tanto en nuestras herramientas de código abierto como en las que cuentan con soporte comercial para facilitar a todo el mundo una entrega de aplicaciones impecable, desde las aplicaciones más pequeñas y ligeras hasta las plataformas más grandes del mundo.

Características de NGINX Plus R7 en detalle

Esta sección ofrece una descripción detallada de todas las nuevas características y funcionalidades de NGINX Plus R7.

Implementación de HTTP/2 con soporte completo

NGINX Plus R7 ofrece compatibilidad con HTTP/2, la versión más reciente del protocolo HTTP, mediante el nuevo paquete nginx-plus-http2. HTTP/2 aporta un mayor rendimiento y seguridad a las aplicaciones web modernas. La compatibilidad de NGINX Plus con HTTP/2 funciona a la perfección con sus sitios y aplicaciones actuales, sin necesidad de modificarlos y con tan solo unos cambios mínimos en la configuración de NGINX Plus. NGINX Plus R7 ofrece compatibilidad total con versiones anteriores y puede gestionar tráfico HTTP/1.x y HTTP/2 en paralelo, para brindar la mejor experiencia independientemente del navegador que elijan sus usuarios.

HTTP/2 implementado a nivel de servidor es compatible con navegadores que utilizan tanto HTTP/2 como HTTP/1.x

Para facilitar la transición a HTTP/2, NGINX Plus actúa como una «puerta de enlace HTTP/2». En el front-end, NGINX Plus se comunica mediante HTTP/2 con los navegadores web cliente compatibles y, en el back-end, sigue comunicándose mediante HTTP/1.x (o FastCGI, SCGI, uWSGI, etc.), como hasta ahora. Esto significa que los servidores y las aplicaciones para los que NGINX Plus actúa como proxy no se verán afectados por la migración a HTTP/2 y ni siquiera necesitan saber qué versión de HTTP utilizan sus clientes.

Para admitir HTTPS y HTTP/2 de forma simultánea, NGINX Plus es compatible con las extensiones de TLS Next Protocol Negotiation (NPN) y Application-Layer Protocol Negotiation (ALPN). Estas extensiones permiten actualizar de forma transparente una conexión HTTPS a HTTP/2 si tanto el cliente como el servidor son compatibles con HTTP/2.

El único cambio de configuración necesario es añadir el parámetro http2 a las directivas listen existentes. Tenga en cuenta que HTTP/2 solo es compatible cuando también se incluye el parámetro ssl:

server {    listen 443 ssl http2 default_server;
}

Para habilitar la compatibilidad con HTTP/2, instale el paquete nginx-plus-http2 desde el repositorio de NGINX Plus. Este paquete no es compatible con SPDY/3.1. Los paquetes estándar nginx-plus y nginx-plus-extras son compatibles con SPDY/3.1 en lugar de HTTP/2 y, actualmente, se recomiendan para sitios en producción debido a su mayor compatibilidad con navegadores y a la madurez del código. Tenga en cuenta que actualmente no compilamos una versión del paquete nginx-plus-extras compatible con HTTP/2.

Para obtener más información sobre HTTP/2:

Rendimiento significativamente mejorado

NGINX Plus R7 incluye varias mejoras de rendimiento que pueden ayudar a que sus aplicaciones funcionen aún mejor. Añade compatibilidad con la optimización mediante grupos de subprocesos, que descarga las operaciones de disco potencialmente bloqueantes y mejora el rendimiento de las cargas de trabajo (como el almacenamiento en caché de contenido) que requieren un uso intensivo de E/S de disco. NGINX Plus R7 también incluye la optimización mediante la fragmentación de sockets (requiere Linux 3.9+ o Dragonfly BSD), que mejora la eficiencia en servidores grandes con varios núcleos en los que un gran número de procesos nginx gestionan el tráfico. Estas mejoras se han probado en entornos reales en implementaciones de NGINX Open Source y ahora cuentan con compatibilidad total como parte de NGINX Plus.

Grupos de subprocesos

El uso de grupos de subprocesos en NGINX Plus puede multiplicar por 9 el rendimiento. Es bien sabido que NGINX utiliza un enfoque asíncrono y basado en eventos para gestionar las conexiones. Sin embargo, el enfoque asíncrono y basado en eventos sigue teniendo un problema: el bloqueo. En Linux, las operaciones de disco son bloqueantes, por lo que, durante las operaciones que implican una gran cantidad de E/S de disco, NGINX puede pasar mucho tiempo bloqueado en lugar de realizar trabajo productivo.

Asignar un grupo de hilos para gestionar las operaciones de E/S de disco mitiga este problema. En lugar de acceder directamente al disco, el proceso de trabajo de NGINX delega la operación de E/S en un hilo disponible del grupo y vuelve a procesar el tráfico con normalidad. Cuando finaliza la operación de disco, se notifica al proceso de trabajo de NGINX, que puede continuar con las tareas pendientes para atender la solicitud.

Para habilitar los grupos de hilos, basta con añadir la directiva aio threads a un bloque location:

location / {    root /storage;
    aio threads;
}

Para obtener una visión general detallada de los grupos de subprocesos en NGINX, consulte esta entrada del blog.

Fragmentación de sockets

La fragmentación de sockets se introdujo por primera vez en NGINX 1.9.1. Esta función aprovecha la opción de socket SO_REUSEPORT introducida en la versión 3.9 del kernel de Linux. Cuando se habilita esta opción, el propio kernel de Linux distribuye uniformemente las nuevas conexiones entre los procesos de trabajo de NGINX mediante un sistema de turno rotatorio. A continuación, los procesos de trabajo se encargan de limitar las solicitudes, almacenar datos en caché, equilibrar la carga y realizar todas las demás tareas que haya configurado.

Sin SO_REUSEPORT, las nuevas conexiones quedan a disposición de todos los procesos de trabajo disponibles. El primero que retira una conexión de la cola se la queda. Como no existe ningún algoritmo que distribuya la carga de manera uniforme, esta puede desequilibrarse fácilmente, de modo que unos pocos procesos de trabajo asuman la mayor parte de la carga mientras que otros quedan infrautilizados. También resulta ineficiente que los procesos compitan por los paquetes, ya que esto puede provocar contención de bloqueos.

La fragmentación de sockets puede triplicar el rendimiento al garantizar que el trabajo se distribuya de manera uniforme entre los procesos de trabajo de NGINX. Para habilitar esta funcionalidad, añada el nuevo parámetro reuseport a las directivas listen existentes.

server {    listen 12345 reuseport;
    # ...
}

Para obtener más información sobre esta función, consulte esta entrada del blog.

Nota: Esta función requiere la versión 3.9 o posterior del kernel de Linux. Ubuntu 13.10 y versiones posteriores, así como Red Hat Enterprise Linux 7 y versiones posteriores, incluyen la funcionalidad necesaria.

Mejoras en el control de acceso y la seguridad

NGINX Plus R7 incorpora aún más funciones para mejorar la seguridad de sus aplicaciones. En esta sección se ofrece una visión general de dichas funciones.

Control y limitación del acceso TCP

Las nuevas funcionalidades de proxy TCP y balanceo de carga mejoran el control de acceso (limitación por dirección IP), la limitación de conexiones (limitación del número de conexiones simultáneas por cliente o servicio) y el uso del ancho de banda (limitación del ancho de banda ascendente o descendente por conexión). Estas funcionalidades ya están disponibles para el balanceo de carga HTTP y se utilizan con gran éxito para la medición del uso de API y la protección contra ataques DDoS.

Para obtener más información, consulte la entrada de blog relacionada, «Balanceo de carga TCP en NGINX Plus R7<.htmlspan>».

Compatibilidad con NTLM

En respuesta a la demanda popular, NGINX Plus R7 puede actuar como proxy y equilibrar la carga de aplicaciones que utilizan Microsoft NT LAN Manager (NTLM) para la autenticación. NTLM es un protocolo de autenticación utilizado por muchos productos de Microsoft, especialmente con aplicaciones heredadas.

Nuestra compatibilidad con NTLM cumple el requisito de seguridad de mantener activas las conexiones con los servidores backend, pero sin multiplexarlas, de modo que cada cliente autenticado mediante NTLM disponga de una conexión exclusiva con el servidor backend.

Para habilitar la compatibilidad con NTLM, añada la directiva ntlm a la configuración de los grupos de servidores HTTP ascendentes:

upstream backend {    server 192.168.1.10;
    server 192.168.1.11;
    ntlm;
}

Ahora puede implementar NGINX con total confianza como proxy, equilibrador de carga y acelerador HTTP/2 delante de aplicaciones de Microsoft, ofreciendo compatibilidad con la gama más amplia posible de dispositivos cliente.

Monitorización y diagnóstico mejorados

NGINX Plus proporciona funciones detalladas de monitorización y estadísticas que facilitan la observación, optimización y depuración de aplicaciones e infraestructuras. Partiendo de esta capacidad, NGINX Plus R7 incorpora nuevos contadores y estadísticas. Estos contadores le ayudan a ajustar sus implementaciones de NGINX Plus y a tomar decisiones fundamentadas sobre cuándo podría ser necesario ampliar la capacidad o añadir más instancias para gestionar una mayor carga. Las nuevas estadísticas y contadores son:

  • 499 errores – Contador por servidor que registra los errores 499, que se producen cuando el cliente cierra la conexión antes de que el servidor backend termine de procesar su solicitud. Unos pocos errores 499 son aceptables (es habitual que los usuarios cierren el navegador web en mitad de una sesión), pero un número elevado puede indicar que el servidor está sobrecargado y tarda mucho en procesar las solicitudes.
  • Reinicios del proceso de trabajo de NGINX Plus – Número de veces que se ha reiniciado el proceso de trabajo de NGINX Plus. Esto ayuda a detectar fallos en dicho proceso.
  • Recargas de NGINX Plus – El número de veces que se ha recargado NGINX Plus. Esto permite confirmar que NGINX Plus se ha recargado realmente o que la recarga ha fallado por diversos motivos, como una configuración incorrecta.
  • Desbordamientos de cola – Contador por servidor que mide la capacidad de un servidor para gestionar la carga. Un número elevado de desbordamientos de cola indica que el servidor tiene dificultades para mantener el ritmo.
  • Negociaciones SSL – El número de negociaciones SSL completadas.
  • Sesiones SSL reutilizadas – El número de sesiones SSL que se reutilizaron de una sesión anterior.
  • Nuevas sesiones SSL – El número de nuevas sesiones SSL negociadas.

Al igual que el resto de los contadores, puede habilitar los nuevos contadores incluyendo la directiva api en la configuración.

Panel de control de NGINX Plus actualizado e interactivo

El panel de NGINX Plus se ha mejorado considerablemente en R7 y muestra información clave del sistema de forma concisa, incluso en configuraciones grandes y complejas:

  • Una nueva pestaña de resumen del Panel de control ofrece una visión completa, en una sola página, de la actividad de NGINX Plus y del estado de su aplicación.
  • Una interfaz del panel permite añadir y eliminar temporalmente servidores de un grupo de balanceo de carga, así como marcar temporalmente los servidores como en proceso de vaciado o inactivos.
  • Los nuevos filtros le permiten acotar rápidamente los resultados y encontrar los servidores que han fallado.
  • Una nueva vista con pestañas le permite cambiar rápidamente de la pestaña Panel de control a vistas más detalladas de las zonas, los servidores ascendentes y la información de la caché.
  • En todo el panel, la nueva información sobre herramientas ofrece datos más detallados sobre los servidores ascendentes, las recargas de configuración, el estado de la caché y cualquier mensaje de error.

Para obtener más información, consulte la entrada de blog relacionada, «El nuevo panel de NGINX Plus<.htmla>».

Algunas mejoras más

NGINX Plus R7 incluye una serie de mejoras adicionales que no encajan en ninguna de las categorías anteriores:

Actualización de Phusion Passenger Open Source para que sea compatible con NGINX Plus

Si utiliza Phusion Passenger Open Source con NGINX Plus (la directiva passenger_root está incluida en su configuración), debe actualizar el entorno de ejecución de Passenger a la versión 5.0.15 al mismo tiempo que actualiza al paquete nginx-plus-extras de NGINX Plus R7. Siga estos pasos (los comandos son adecuados para Ubuntu):

  1. Detenga NGINX Plus:
# service nginx stop
  1. Actualiza el entorno de ejecución de Phusion Passenger a la versión 5.0.15:
# apt-get install passenger
  1. Actualice el paquete NGINX Plus Extras a la versión R7:
# apt-get install nginx-plus-extras
  1. Realice las actualizaciones necesarias en las directivas de configuración de NGINX Plus tal como se describe en las notas de actualización de Phusion Passenger.
  2. Inicie NGINX Plus:
# service nginx start

Las instrucciones completas de instalación y actualización están disponibles en el portal del cliente de NGINX Plus.

Actualice o pruebe NGINX Plus

Si utiliza NGINX Plus, le recomendamos encarecidamente que actualice a la versión 7 lo antes posible. Obtendrá diversas correcciones y mejoras, y nos facilitará la tarea de ayudarle si necesita abrir una incidencia de soporte. Encontrará las instrucciones de instalación y actualización en el portal del cliente.

Si aún no ha probado NGINX Plus, le animamos a utilizarlo para acelerar sitios web, equilibrar la carga y distribuir aplicaciones, o como servidor web con soporte completo y API mejoradas de supervisión y gestión. Puede empezar hoy mismo de forma gratuita con una evaluación de 30 días y comprobar por sí mismo cómo NGINX Plus puede ayudarle a escalar y distribuir sus aplicaciones.

Advertencias

  • NGINX Plus R7 ya no es compatible con Debian 6, SLES 11 SP3, Ubuntu 10.04 LTS ni Ubuntu 14.10, porque estas distribuciones ya no cuentan con soporte general. Antes de actualizar a NGINX Plus R7, actualice a una distribución de sistema operativo compatible.
  • NGINX Plus R7 es la última versión que incluye el paquete nginx-plus-lua; si utiliza ese paquete, planifique la migración al paquete nginx-plus-extras en NGINX Plus Release 8.
  • Antes de instalar el paquete nginx-plus-http2, debe eliminar el parámetro spdy de todas las directivas listen de su configuración (sustitúyalo por los parámetros http2 y ssl para habilitar la compatibilidad con HTTP/2). Con el paquete nginx-plus-http2, NGINX Plus no se inicia si alguna directiva listen contiene el parámetro spdy.


Compartir

Sobre el autor

Owen Garrett
Owen GarrettDirector sénior de Gestión de Producto

Más artículos de Owen Garrett

Artículos relacionados del blog

Únete a F5 NGINX en AppWorld 2024
NGINX | 04/01/2024

Únete a F5 NGINX en AppWorld 2024

Descubre las numerosas razones para asistir al evento insignia de F5, que incluirá un emocionante anuncio sobre la cartera de productos NGINX.

Rotación de certificados SSL/TLS sin reinicios en NGINX Open Source
NGINX | 26/09/2023

Rotación de certificados SSL/TLS sin reinicios en NGINX Open Source

La función de diccionario compartido permite configurar NGINX sin necesidad de reiniciarlo al renovar los certificados SSL/TLS.

Exposición de APIs en Kubernetes
NGINX | 10/03/2022

Exposición de APIs en Kubernetes

La unidad 2 de Microservices March 2022 se centra en cómo exponer tus API en Kubernetes. Aquí tienes enlaces a los recursos que necesitas: la retransmisión en directo del 14 de marzo, artículos de blog y otros recursos de preparación, y el laboratorio práctico «Protege las API de Kubernetes mediante la limitación de solicitudes».

NGINX Sprint 2.0: visión clara, código renovado y nuevos compromisos con el código abierto
NGINX | 23/08/2021

NGINX Sprint 2.0: visión clara, código renovado y nuevos compromisos con el código abierto

Hoy, en NGINX Sprint 2.0, anunciamos cómo respaldaremos nuestra visión del futuro de las aplicaciones modernas con una mayor presencia en la comunidad de código abierto, incluida la participación en el proyecto comunitario Kubernetes, nuevos proyectos de software de código abierto y la arquitectura de referencia para aplicaciones modernas.

Presentamos NGINX Plus R22
NGINX | 09/06/2020

Presentamos NGINX Plus R22

NGINX Plus R22 incorpora nuevas funcionalidades, como la compatibilidad con OCSP para verificar la revocación de certificados en TLS mutuo, el uso de varios proveedores de identidad OIDC en una configuración, el seguimiento en tiempo real de la limitación de solicitudes y conexiones en el panel de NGINX Plus y mejoras en NGINX JavaScript.

Presentamos NGINX Plus R17
NGINX | 11/12/2018

Presentamos NGINX Plus R17

NGINX Plus R17 incorpora compatibilidad con la limitación de velocidad en dos fases y con TLS 1.3, la versión más reciente del protocolo Transport Layer Security. La configuración de OpenID Connect es más sencilla y NGINX ModSecurity WAF es el doble de rápido que antes. También se ha actualizado el módulo JavaScript de NGINX.