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:
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.
SO_REUSEPORT
y actualmente requiere Linux 3.9+ o DragonFly BSD.“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 .
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:
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.
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 .
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.
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.
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> .
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.
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.Al igual que todos los demás contadores, puede habilitar los nuevos contadores incluyendo la directiva api
en la configuración.
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:
Para obtener más información, consulte la publicación del blog relacionada, El nuevo panel de NGINX Plus<.htmla>.
NGINX Plus R7 tiene una serie de mejoras adicionales que no entran en ninguna de las categorías anteriores:
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.
$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.-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.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> .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):
Detener NGINX Plus:
# servicio nginx detener
Actualice el tiempo de ejecución de Phusion Passenger a 5.0.15:
# apt-get install pasajero
Actualice el paquete NGINX Plus Extras a R7:
# apt-get install nginx-plus-extras
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.
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.
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.
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.