BLOG | NGINX

Anunciamos NGINX Plus R7

NGINX - Parte de F5 - horizontal, negro, tipo RGB
Miniatura de Owen Garrett
Owen Garrett
Publicado el 16 de septiembre de 2015

NGINX, Inc. se enorgullece de anunciar la disponibilidad de NGINX Plus Release 7 (R7), la última versión de nuestra plataforma de entrega de aplicação . La actualización proporciona una implementación totalmente compatible del nuevo estándar web HTTP/2, el primero de su tipo para un servidor web líder. NGINX Plus se puede implementar como una puerta de enlace y acelerador HTTP/2 de interfaz para servicios web nuevos y existentes.

[Editor: esta publicación se ha actualizado para hacer referencia a la API NGINX Plus , que reemplaza y deja obsoleto el módulo de estado separado mencionado en la versión original de la publicación].

La última actualización también agrega mejoras espectaculares y capacidades adicionales para garantizar que las organizaciones puedan entregar sus aplicações con el rendimiento, la seguridad y la confiabilidad necesarios para las aplicações empresariales. Estas incluyen mejoras significativas para facilitar la supervisión, la administración y la depuración de aplicação , además de funciones adicionales de seguridad y optimización del rendimiento.

Editor: para obtener más detalles sobre las nuevas funciones clave de NGINX Plus R7 , consulte estas publicaciones de blog relacionadas:

Consulte también nuestro seminario web a pedido: ¿Qué hay de nuevo en NGINX Plus R7?

Las características clave de esta versión incluyen:

  • Implementación totalmente compatible con HTTP/2 : NGINX Plus ahora proporciona una implementación totalmente compatible con el nuevo estándar web HTTP/2. NGINX Plus se puede implementar como una puerta de enlace y acelerador HTTP/2 de interfaz para servicios web nuevos y existentes.

    La compatibilidad con HTTP/2 solo está disponible en el paquete opcional nginx-plus-http2 . Los paquetes nginx-plus y nginx-plus-extras brindan compatibilidad con SPDY y actualmente se recomiendan para sitios de producción debido a la mayor compatibilidad con navegadores y la madurez del código.

    Nota : Basándose en las pruebas de usuario del parche de nivel alfa , y con el apoyo temprano de los copatrocinadores corporativos Automattic y Dropbox, la versión final de código abierto de HTTP/2 estará disponible después del lanzamiento de R7.

  • Rendimiento significativamente mejorado : NGINX Plus R7 admite grupos de subprocesos para E/S asincrónicas . Esto acelera las cargas de trabajo que implican altos niveles de E/S de disco, como el almacenamiento en caché de contenido. Nuestros puntos de referencia indican que los grupos de subprocesos pueden generar una mejora del rendimiento de hasta 9 veces para ciertas cargas de trabajo.

    NGINX Plus R7 también admite optimizaciones de fragmentación de sockets para aumentar el rendimiento en servidores multinúcleo. Nuestro análisis comparativo indica que esto puede aumentar las solicitudes por segundo y reducir la latencia en más de 3 veces cada una . La fragmentación de sockets utiliza la opción SO_REUSEPORT y actualmente requiere Linux 3.9+ 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 confiabilidad de sus aplicações. Los controles de acceso y los límites de conexión para los servicios TCP le permiten aplicar reglas de protección a todos sus servicios administrados por NGINX, mientras que la compatibilidad con la autenticación de NT LAN Manager (NTLM) significa que puede implementar NGINX Plus frente a las aplicações heredadas de Microsoft.
  • Monitoreo y diagnóstico mejorados : NGINX Plus agrega datos de monitoreo y estadísticas aún más detallados a las herramientas de estado y panel de control existentes. Realice un seguimiento de los errores del cliente, la actividad interna de NGINX y la carga SSL en sus servicios para ayudar a identificar problemas y ajustar su configuración.
  • Panel de control interactivo y actualizado de NGINX Plus : el panel de control de monitoreo de actividad en vivo de NGINX Plus se ha ampliado significativamente y ahora ofrece una interfaz con pestañas para brindar vistas más detalladas de su rendimiento y salud de NGINX. Puede explorar en profundidad para identificar y comprender los problemas con su infraestructura y realizar cambios rápidos en sus configuraciones.

“Hemos ayudado a cientos de nuevos clientes a implementar sus aplicações con NGINX Plus durante el último año, y nuestro último lanzamiento realmente busca brindarles aún más herramientas para garantizar la mejor experiencia posible para sus usuarios”, afirma Gus Robertson, director ejecutivo de NGINX, Inc. “Somos la estructura de la infraestructura de nuestros clientes, y eso nos coloca en una posición única para poder brindar visibilidad y control incomparables sobre las aplicações que implementan. Nos tomamos muy en serio nuestro papel fundamental en los negocios de nuestros clientes, y las nuevas capacidades de NGINX Plus R7 lo reflejan”.

La adopción de NGINX ha crecido considerablemente en los últimos meses. NGINX es el servidor web número uno entre los 100.000 sitios web más importantes , y casi la mitad de los sitios más activos del mundo utilizan NGINX para entregar sus aplicações a miles de millones de usuarios. NGINX, Inc. continúa invirtiendo fuertemente en nuestras herramientas de código abierto y con soporte comercial para facilitar la entrega perfecta de aplicação para todos, desde las aplicaciones más pequeñas y livianas hasta las plataformas más grandes del mundo.

Características detalladas de NGINX Plus R7

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

Implementación totalmente compatible de HTTP/2

NGINX Plus R7 ofrece soporte para HTTP/2, la última versión del protocolo HTTP, a través del nuevo paquete nginx-plus-http2 . HTTP/2 aporta mayor rendimiento y seguridad a las aplicações web modernas. La compatibilidad de NGINX Plus con HTTP/2 funciona perfectamente con sus sitios y aplicaciones existentes, sin necesidad de realizar cambios en ellos y solo con cambios mínimos en la configuración de NGINX Plus. NGINX Plus R7 es totalmente compatible con versiones anteriores y puede entregar tráfico HTTP/1.x y HTTP/2 en paralelo, para la mejor experiencia sin importar el navegador que elijan sus usuarios.

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 habla HTTP/2 con los navegadores web clientes que lo admiten, y en el back-end habla HTTP/1.x (o FastCGI, SCGI, uWSGI, etc.) como antes. Esto significa que los servidores y aplicações proxy de NGINX Plus no se verán afectados por la migración a HTTP/2 y ni siquiera necesitarán saber qué versión de HTTP están usando sus clientes.

Para soportar HTTPS y HTTP/2 en paralelo, NGINX Plus admite las extensiones de Negociación de Protocolo Siguiente (NPN) y Negociación de Protocolo de Capa de Aplicação(ALPN) en TLS. Estas extensiones se utilizan para actualizar sin problemas una conexión HTTPS a HTTP/2 si tanto el cliente como el servidor admiten HTTP/2.

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

servidor { escuchar 443 ssl http2 servidor_predeterminado; }

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

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

Rendimiento significativamente mejorado

NGINX Plus R7 incluye una serie de mejoras de rendimiento que pueden ayudar a que sus aplicações funcionen aún mejor. Agrega soporte para la optimización del grupo de subprocesos , que descarga operaciones de disco potencialmente bloqueantes y mejora el rendimiento de las cargas de trabajo (como el almacenamiento en caché de contenido) que involucran E/S de disco pesadas. NGINX Plus R7 también incluye la optimización de fragmentación de sockets (se requiere Linux 3.9+ o Dragonfly BSD) que mejora la eficiencia en servidores grandes de múltiples núcleos donde una gran cantidad de procesos nginx manejan el tráfico. Se han probado en el campo en implementaciones de código abierto NGINX y ahora cuentan con soporte total como parte de NGINX Plus.

Grupos de subprocesos

El uso de grupos de subprocesos en NGINX Plus puede brindarle un rendimiento 9 veces mejor. Es bien sabido que NGINX utiliza un enfoque asincrónico e impulsado por eventos para gestionar las conexiones . Pero el enfoque asincrónico basado en eventos todavía tiene un problema: el bloqueo. En Linux, las operaciones de disco son bloqueantes, por lo que durante operaciones que involucran mucha E/S de disco, NGINX puede pasar mucho tiempo bloqueándose en lugar de realizar un trabajo productivo.

La asignación de un grupo de subprocesos que manejen la E/S del disco alivia este problema. En lugar de ir al disco mismo, el proceso de trabajo NGINX transfiere la operación de E/S a un hilo disponible en el grupo y luego vuelve a procesar el tráfico como de costumbre. Cuando se completa la operación del disco, se notifica al proceso de trabajo NGINX y puede continuar con el trabajo restante para satisfacer la solicitud.

Para habilitar grupos de subprocesos, simplemente agregue la directiva de subprocesos aio a un bloque de ubicación :

ubicación / { raíz / almacenamiento; subprocesos aio ; }

Para obtener una descripción general completa de los grupos de subprocesos en NGINX, consulte esta publicación de blog .

Fragmentación de sockets

La fragmentación de sockets se introdujo por primera vez en NGINX 1.9.1. Esta característica aprovecha la opción de socket SO_REUSEPORT introducida en la versión 3.9 del kernel de Linux. Cuando la opción está habilitada, el kernel de Linux distribuye las nuevas conexiones de manera uniforme entre los procesos de trabajo de NGINX en forma rotatoria. Luego, los procesos de trabajo realizan el trabajo de limitar las solicitudes, almacenar en caché, equilibrar la carga y todo lo demás que haya configurado.

Sin SO_REUSEPORT , se ponen a disposición nuevas conexiones para todos los procesos de trabajo disponibles. El primero que tome una conexión de la cola, la obtiene. Como no existe un algoritmo para distribuir la carga de manera uniforme, esta puede distorsionarse fácilmente y algunos procesos de trabajo toman la mayor parte de la carga mientras otros quedan subutilizados. También es ineficiente que los procesos peleen por los paquetes, ya que esto puede generar contención de bloqueo.

La fragmentación de sockets puede mejorar el rendimiento hasta tres veces al garantizar que el trabajo se distribuya de manera uniforme entre los procesos de trabajo de NGINX. Para habilitar esta funcionalidad, agregue el nuevo parámetro reuseport a las directivas de escucha existentes.

servidor {escucha 12345 reutilización ; #... }

Para obtener más información sobre esta función, consulte esta publicación de blog .

Nota : Esta función requiere la versión 3.9 o posterior del kernel de Linux. Ubuntu 13.10 y posteriores y Red Hat Enterprise Linux 7 y posteriores incluyen la funcionalidad requerida.

Control de acceso y mejoras de seguridad

NGINX Plus R7 agrega aún más funciones para mejorar la seguridad de sus aplicações. Esta sección proporciona una descripción general de esas características.

Control y limitación de acceso TCP

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

Para obtener más detalles, consulte la publicación del blog relacionada, Equilibrio 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 aplicações que utilizan Microsoft NT LAN Manager ( NTLM ) para la autenticación. NTLM es un protocolo de autenticación utilizado por muchos productos de Microsoft, particularmente con aplicações heredadas.

Nuestro soporte para NTLM cumple con el requisito de seguridad de que las conexiones a los servidores back-end se mantengan activas pero no multiplexadas, de modo que cada cliente autenticado con NTLM tenga una conexión dedicada única al servidor back-end.

Para habilitar la compatibilidad con NTLM, agregue la directiva ntlm en la configuración de los grupos ascendentes HTTP:

backend ascendente { servidor 192.168.1.10; servidor 192.168.1.11; ntlm ; }

Ahora puede implementar con confianza NGINX como proxy, equilibrador de carga y acelerador HTTP/2 frente a las aplicações de Microsoft, admitiendo la gama más amplia posible de dispositivos cliente.

Monitoreo y diagnóstico mejorados

NGINX Plus proporciona monitoreo y estadísticas detalladas para facilitar la observación, optimización y depuración de aplicações e infraestructura. Basándose en esa capacidad, NGINX Plus R7 viene equipado con nuevos contadores y estadísticas. Estos contadores le ayudan a ajustar sus implementaciones de NGINX Plus y a tomar decisiones informadas sobre cuándo podría necesitar ampliar o reducir la escala para manejar más carga. Las nuevas estadísticas y contadores son:

  • 499 errores – Contador por servidor que rastrea499 errores que ocurren cuando el cliente cierra la conexión antes de que el servidor backend termine de procesar su solicitud. Algunos499 Los errores son aceptables (las personas a menudo cierran sus navegadores web en medio de una sesión), pero una gran cantidad puede indicar que el servidor está sobrecargado y tarda mucho tiempo en procesar las solicitudes.
  • Reinicios del trabajador NGINX Plus : la cantidad de veces que se reinició el trabajador NGINX Plus. Esto ayuda a detectar fallas del proceso de trabajo NGINX Plus.
  • Recargas de NGINX Plus : la cantidad de veces que se recargó NGINX Plus. Esto confirma que NGINX Plus realmente se recargó o que la recarga falló debido a varios motivos, como una configuración incorrecta.
  • Desbordamientos de cola : contador por servidor que mide qué tan bien un servidor maneja la carga. Una gran cantidad de desbordamientos de cola indica que un servidor tiene dificultades para mantener el ritmo.
  • Protocolos de enlace SSL : la cantidad de protocolos de enlace SSL completados.
  • Sesiones SSL reutilizadas : la cantidad de sesiones SSL que se reutilizaron de una sesión anterior.
  • Nuevas sesiones SSL : la cantidad de nuevas sesiones SSL negociadas.

Al igual que todos los demás contadores, puede habilitar los nuevos contadores incluyendo la directiva api en la configuración.

Panel de control interactivo y actualizado de NGINX Plus

El panel de control de NGINX Plus se ha mejorado considerablemente en R7 y muestra información clave del sistema en un formato conciso, incluso para configuraciones grandes y complejas:

  • Una nueva pestaña de descripción general del Panel de Control ofrece un resumen completo en una sola página de la actividad de NGINX Plus y un resumen del estado de su aplicação.
  • Una interfaz en el panel de control le permite agregar y eliminar temporalmente servidores en un grupo de equilibrio de carga, así como marcar temporalmente servidores como en agotamiento o inactivos.
  • Los nuevos filtros le permiten explorar en profundidad y encontrar servidores con fallas rápidamente.
  • Una nueva vista con pestañas le permite cambiar rápidamente de la pestaña Panel a vistas más detalladas de zonas, flujos ascendentes e información de caché.
  • En todo el panel de control, nuevas sugerencias de herramientas brindan información más detallada 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 publicación del blog relacionada, El nuevo panel de NGINX Plus<.htmla>.

Unas cuantas cosas más

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

  • Transmisión HLS mejorada : NGINX Plus ahora admite los argumentos start , end y offset en las URI HLS .m3u8 . Esto permite a los editores de contenido publicar fácilmente enlaces a fragmentos de una transmisión de video.
  • Modificación de contenido : anteriormente, NGINX Plus podía realizar solo un cambio simple en el contenido de una respuesta, sustituyendo una cadena por otra. La directiva sub_filter se ha ampliado para admitir variables y cadenas de sustituciones, lo que hace posibles cambios más complejos.

    Las capacidades ampliadas de modificación de contenido facilitan la adaptación del contenido web, por ejemplo, cambiando el método ( https:// en lugar de http:// ), el dominio u otros elementos de ruta en los hipervínculos en el contenido del mensaje. También puedes usarlo para insertar contenido en páginas HTML, como texto repetitivo o fragmentos de JavaScript, sin tener que modificar el contenido HTML original.

  • Variable $upstream_connect_time : una nueva variable NGINX que rastrea el tiempo que lleva conectarse a un servidor backend, lo que facilita la identificación de servidores lentos.
  • Volcado de configuración : la nueva bandera -T en el comando nginx vuelca la configuración NGINX analizada en stdout en un formato claro y estandarizado. Esto es útil para fines de archivado o al presentar un ticket de soporte.
  • Equilibrio de carga TCP más configurable : las directivas proxy_bind , proxy_protocol y tcp_nodelay y el parámetro backlog de la directiva listen ahora son compatibles con el tráfico TCP (módulo stream ) así como con el tráfico HTTP. Para obtener más detalles, consulte Equilibrio de carga TCP en NGINX Plus R7<.htmlspan> .
  • Compatibilidad con Redis : el módulo Redis de terceros ( lua-resty-redis ) ahora está integrado en el paquete nginx-plus-extras . Permite que NGINX Plus interactúe con una base de datos Redis (por ejemplo, para obtener y establecer valores) y es totalmente compatible como parte de una suscripción a NGINX Plus.
  • Módulo Phusion Passenger actualizado : el módulo de código abierto Phusion Passenger se ha actualizado a la versión 5.0.15.

Actualización de Phusion Passenger de código abierto para que sea compatible con NGINX Plus

Si usa 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 . Realice estos pasos (los comandos son apropiados para Ubuntu):

  1. Detener NGINX Plus:

    # servicio nginx detener
  2. Actualice el tiempo de ejecución de Phusion Passenger a 5.0.15:

    # apt-get install pasajero
  3. Actualice el paquete NGINX Plus Extras a R7:

    # apt-get install nginx-plus-extras
  4. Realice las actualizaciones necesarias a las directivas de configuración de NGINX Plus como se describe en las notas de actualización de Phusion Passenger.

  5. Iniciar NGINX Plus:

    # servicio nginx inicio

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 está ejecutando NGINX Plus, le recomendamos encarecidamente que actualice a la versión 7 lo antes posible. Recibirá una serie de correcciones y mejoras, y nos servirá para ayudarlo si necesita generar un ticket de soporte. Las instrucciones de instalación y actualización se pueden encontrar en el portal del cliente .

Si aún no ha probado NGINX Plus , le recomendamos que lo pruebe para aceleración web, equilibrio de carga y entrega de aplicação , o como un servidor web totalmente compatible con API de administración y monitoreo mejoradas. Puede comenzar hoy de forma gratuita con una evaluación de 30 días y comprobar usted mismo cómo NGINX Plus puede ayudarle a escalar y entregar sus aplicações.

Advertencias

  • NGINX Plus R7 ya no es compatible con Debian 6, SLES 11 SP3 o Ubuntu 10.04 LTS o 14.10, porque estas distribuciones ya no reciben 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 está usando ese paquete, planifique migrar al paquete nginx-plus-extras en NGINX Plus Release 8 .
  • Antes de instalar el paquete nginx-plus-http2 , debe eliminar el parámetro spdy en todas las directivas de escucha en su configuración (reemplácelo con los parámetros http2 y ssl para habilitar el soporte para HTTP/2). Con el paquete nginx-plus-http2 , NGINX Plus no puede iniciarse si alguna directiva de escucha tiene el parámetro spdy .

"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.