[Editor: esta publicación se ha actualizado para hacer referencia a la API NGINX Plus , que reemplaza y deja obsoletos los módulos de estado y configuración dinámica separados discutidos en la versión original de la publicación].
Hoy nos complace anunciar que NGINX Plus R12 está disponible como una actualización gratuita para todos los suscriptores de NGINX Plus. NGINX Plus es una plataforma de distribución de aplicação de software de alto rendimiento que incluye un equilibrador de carga, un caché de contenido y un servidor web. NGINX Plus R12 es una versión importante con nuevas características centradas en la agrupación en clústeres, la personalización y la supervisión.
Para obtener más información sobre NGINX Plus R12, mire nuestro seminario web a pedido .
Los usuarios empresariales se beneficiarán de la nueva función de agrupamiento, que simplifica el proceso de gestión de clústeres de alta disponibilidad de servidores NGINX Plus. Todos los usuarios se beneficiarán del soporte oficial para nginScript, un lenguaje de scripting liviano y de alto rendimiento que está integrado directamente en la configuración de NGINX. Las mejoras en la supervisión y la instrumentación, el almacenamiento en caché y los controles de estado mejoran la confiabilidad y el rendimiento de las aplicações.
nginx
del par.obsoletas mientras se revalida
y obsoletas si hay error
definidas en RFC 5861 . La revalidación de caché se puede realizar en segundo plano para que los usuarios no tengan que esperar a que se complete el viaje de ida y vuelta al servidor de origen.Otras mejoras incluyen autenticación de certificados de cliente para servicios TCP, la capacidad de inspeccionar campos personalizados en JWT de OAuth, compatibilidad con el formato WebP en el módulo Image-Filter y una serie de mejoras de rendimiento y estabilidad.
Alentamos a todos los suscriptores a actualizar a NGINX Plus R12 de inmediato para aprovechar las mejoras de rendimiento, funcionalidad y confiabilidad en esta versión. Antes de realizar la actualización, asegúrese de revisar los cambios de comportamiento que se enumeran en la siguiente sección.
NGINX Plus R12 introduce algunos cambios en el comportamiento predeterminado y en los aspectos internos de NGINX Plus que debes tener en cuenta al actualizar:
$ssl_client_s_dn
y $ssl_client_i_dn
ha cambiado. La coma ( ,
) ahora sirve como separador de campo en lugar de la barra diagonal ( /
) y se escapa según las RFC.2253 y4514 . Para continuar usando el formato X509_NAME_oneline
con el separador de campo de barra diagonal, utilice las variables $ssl_client_s_dn_legacy
y $ssl_client_i_dn_legacy
.de cola
le dice a NGINX Plus que ponga en cola las conexiones a los servidores ascendentes si están sobrecargados . Como consecuencia de las optimizaciones de memoria y rendimiento en R12, la directiva de cola
ahora debe aparecer en el bloque ascendente
debajo de la directiva que especifica el algoritmo de equilibrio de carga ( hash
, ip_hash
, less_conn
o less_time
).Los servidores NGINX Plus a menudo se implementan en un clúster de dos o más instancias para fines de alta disponibilidad y escalabilidad. Esto le permite mejorar la confiabilidad de sus servicios al aislarlos del impacto de fallas del servidor y también escalar y manejar grandes volúmenes de tráfico.
NGINX Plus ya ofrece una forma compatible de distribuir el tráfico a través de un clúster en modo activo-pasivo o activo-activo . NGINX Plus R12 agrega un método adicional compatible para sincronizar la configuración en un clúster. Esta función de sincronización de configuración permite a un administrador configurar un “clúster” de servidores NGINX Plus desde una única ubicación. Estos servidores comparten un subconjunto común de su configuración.
A continuación se explica cómo sincronizar la configuración:
Invoque el proceso de sincronización de configuración, nginx-sync.sh
, que está incluido en el paquete nginx-sync , para actualizar cada uno de los otros servidores en el clúster (los pares ). El proceso de sincronización realiza estos pasos en cada par:
ssh
o rsync
.Esta capacidad es especialmente útil cuando NGINX Plus se implementa en un par de servidores tolerantes a fallas (o en un número mayor). Puede utilizar este método para simplificar la implementación confiable de la configuración dentro de un clúster o para enviar la configuración desde un servidor de prueba a un clúster de servidores de producción.
Para obtener instrucciones detalladas, consulte la Guía de administración de NGINX Plus .
Con NGINX Plus R12, nos complace anunciar que el módulo JavaScript de NGINX ya está disponible como módulo estable tanto para NGINX Open Source como para NGINX Plus. [Anteriormente, el módulo se llamaba nginScript y en esta publicación se usan los nombres indistintamente]. nginScript es totalmente compatible con los suscriptores de NGINX Plus.
Con nginScript puedes registrar variables personalizadas usando lógica compleja, controlar la selección ascendente, implementar algoritmos de equilibrio de carga, personalizar la persistencia de la sesión e incluso implementar servicios web simples. Publicaremos instrucciones completas para algunas de estas soluciones en nuestro blog en las próximas semanas y agregaremos enlaces a ellas aquí a medida que estén disponibles.
En concreto, NGINX Plus R12 incluye las siguientes mejoras :
endsWith
, include
, repeat
, startsWith
y trim
Aunque nginScript es estable, se continúa trabajando para soportar aún más casos de uso y cobertura del lenguaje JavaScript. Obtenga más información en Cómo aprovechar el poder y la conveniencia de JavaScript para cada solicitud con el módulo JavaScript NGINX<.htmla> en nuestro blog.
El monitoreo y la instrumentación en NGINX Plus son un valor agregado importante que le brinda información profunda sobre el rendimiento y el comportamiento de NGINX Plus y las aplicações ascendentes. Las estadísticas se proporcionan tanto a través de nuestro panel gráfico integrado como en formato JSON que se puede exportar a su herramienta de monitoreo favorita.
NGINX Plus R12 agrega una serie de mejoras: más información sobre el rendimiento (tiempo de respuesta) de los servidores con equilibrio de carga, conocimientos sobre el funcionamiento de los servicios TCP y UDP y una variedad de datos internos que ayudan a solucionar problemas para identificar problemas y ajustar NGINX Plus para optimizar el rendimiento.
Las nuevas estadísticas en NGINX Plus R12 incluyen:
200
significa "éxito",502
significa “upstream no disponible”, etc.), reportándolos en la variable $status
. NGINX Plus R12 agrega una serie de columnas al tablero para mostrar los recuentos de códigos de respuesta para servidores virtuales TCP y UDP, como los que ya se proporcionan para los servidores virtuales HTTP. Los códigos de estado pseudo también se pueden registrar para su integración con herramientas de análisis de registros existentes.nginx_build
(por ejemplo, nginx-plus-r12
) así como el número de versión de código abierto de NGINX como nginx_version
(por ejemplo,1.11.10
). El panel muestra ambos valores en el cuadro superior izquierdo de la pestaña principal.Nombre de host ascendente : en los datos JSON, el campo de servidor
identifica un servidor en un grupo ascendente por dirección IP y puerto. El nuevo campo de nombre
informa el primer parámetro a la directiva del servidor
en el bloque de configuración ascendente
, que puede ser un nombre de dominio o una ruta de socket de dominio UNIX, así como una dirección IP y un puerto. En el panel, la columna Nombre más a la izquierda en las pestañas Upstreams y TCP/UDP Upstreams ahora informa el valor del campo de nombre
en lugar del campo de servidor
(que se informaba en NGINX Plus R11 y anteriores).
La nueva métrica facilita la correlación de los datos JSON y el panel de control con sus servidores ascendentes si los define utilizando nombres DNS, particularmente nombres que se resuelven en múltiples direcciones IP.
Utilización de la zona de memoria compartida en datos de estado extendidos : las zonas de memoria compartida se configuran con un tamaño fijo y puede ser difícil seleccionar un tamaño que no sea demasiado grande (la memoria se asigna pero nunca se utiliza) ni demasiado pequeño (la memoria se agota y los elementos almacenados en caché se descartan).
La nueva instrumentación en las métricas proporciona un informe interno detallado del uso de la memoria de cada zona compartida, lo que le permite monitorear el uso de la memoria y el soporte técnico de NGINX para brindar asesoramiento más informado sobre la optimización de la configuración de NGINX.
log_format
de NGINX Plus, y el nuevo parámetro de escape
opcional para la directiva aplica un escape compatible con JSON para que las líneas de registro tengan el formato correcto.Para obtener más información, consulte Monitoreo de actividad en vivo .
NGINX Plus R12 mejora significativamente el motor de almacenamiento en caché NGINX Plus.
NGINX Plus R12 agrega soporte para las extensiones Cache-Control
definidas en RFC 5861 , stale-while-revalidate
y stale-if-error
. Ahora puede configurar NGINX Plus para respetar estas extensiones de control de caché
y continuar sirviendo recursos vencidos desde el caché mientras los actualiza en segundo plano, sin agregar latencia a la solicitud del cliente. De manera similar, NGINX Plus puede servir recursos caducados desde el caché si el servidor ascendente no está disponible: una técnica para implementar patrones de disyuntores en aplicações de microservicios.
A menos que esté configurado para ignorar el encabezado Cache-Control
, NGINX Plus respeta los temporizadores obsoletos
de los servidores de origen que devuelven encabezados Cache-Control
compatibles con RFC 5861, como en este ejemplo:
Control de caché: edad máxima = 3600 obsoleto mientras se revalida = 120 obsoleto si hay error = 900
Para habilitar la compatibilidad con las extensiones Cache-Control
con actualización en segundo plano, incluya las directivas resaltadas:
proxy_cache_path /ruta/a/cache niveles=1:2 zona_claves=mi_caché:10m tamaño_máximo=10g inactivo=60m use_temp_path=off; servidor { # ... ubicación / { proxy_cache mi_cache; # Servir contenido obsoleto al actualizar proxy_cache_use_stale actualizando ; # Además, no bloquee la primera solicitud que activa la actualización # y realice la actualización en segundo plano proxy_cache_background_update on ; proxy_pass http://mi_subida; } }
La directiva de actualización proxy_cache_use_stale
le indica a NGINX Plus que sirva la versión obsoleta del contenido mientras se actualiza. Si incluye solo esa directiva, el primer usuario que solicita contenido obsoleto paga la penalización por “error de caché”, es decir, no recibe el contenido hasta que NGINX Plus lo haya obtenido del servidor de origen y lo haya almacenado en caché. Los usuarios que posteriormente solicitan el contenido obsoleto mientras se está actualizando lo obtienen de la memoria caché inmediatamente, mientras que el primer usuario no obtiene nada hasta que se obtiene y se almacena en caché el contenido actualizado.
Con la nueva directiva proxy_cache_background_update
, todos los usuarios, incluido el primer usuario, reciben el contenido obsoleto mientras NGINX Plus lo actualiza en segundo plano.
La nueva funcionalidad también está disponible en los módulos FastCGI , SCGI y uwsgi .
Una mejora adicional del motor de almacenamiento en caché permite que NGINX Plus omita el caché para solicitudes de rango de bytes que comienzan más de una cantidad configurada de bytes después del inicio de un archivo no almacenado en caché. Esto significa que, en el caso de archivos grandes, como contenido de video, las solicitudes de un rango de bytes en el archivo no agregan latencia a la solicitud del cliente. En versiones anteriores de NGINX Plus, el cliente no recibía el rango de bytes solicitado hasta que NGINX Plus recuperaba todo el contenido desde el inicio del archivo hasta el rango de bytes solicitado y lo escribía en la memoria caché.
La nueva directiva proxy_cache_max_range_offset
especifica el desplazamiento desde el comienzo del archivo más allá del cual NGINX Plus pasa una solicitud de rango de bytes directamente al servidor de origen y no almacena en caché la respuesta. (La nueva funcionalidad también está disponible en los módulos FastCGI , SCGI y uwsgi ).
proxy_cache_path /ruta/a/caché niveles=1:2 zona_claves=mi_caché:10m tamaño_máximo=10g inactivo=60m use_temp_path=off; servidor { ubicación / { proxy_cache mi_caché; # Omitir caché para solicitudes de rango de bytes superiores a 10 megabytes proxy_cache_max_range_offset 10m ; proxy_pass http://mi_subida; } }
Estas mejoras consolidan aún más a NGINX Plus como un motor de almacenamiento en caché de alto rendimiento y compatible con estándares, adecuado para cualquier entorno, desde la aceleración de la entrega de aplicação hasta la creación de redes de entrega de contenido (CDN) completamente desarrolladas.
NGINX Plus R12 mejora aún más las capacidades de verificación de estado activo de NGINX Plus.
Con la creciente adopción de entornos en contenedores y grupos de aplicações escalables automáticamente, es esencial que el balanceador de carga implemente controles de estado proactivos a nivel de aplicação y permita que los nuevos servidores inicialicen los recursos internos antes de que alcancen su máximo rendimiento.
Antes de NGINX Plus R12, cuando agregaba un nuevo servidor al grupo de equilibrio de carga (usando la API de NGINX Plus o DNS), NGINX Plus lo consideraba en buen estado de inmediato y le enviaba tráfico inmediatamente. Cuando incluye el nuevo parámetro obligatorio
en la directiva health_check
( HTTP o TCP/UDP ), el nuevo servidor debe pasar la verificación de estado configurada antes de que NGINX Plus le envíe tráfico. Cuando se combina con la función de inicio lento , el nuevo parámetro brinda a los nuevos servidores aún más tiempo para conectarse a las bases de datos y “calentarse” antes de que se les solicite manejar su parte completa del tráfico.
upstream my_upstream { zona my_upstream 64k; servidor backend1.example.com slow_start=30s ; } servidor { ubicación / { proxy_pass http://my_upstream; # Requerir que el nuevo servidor pase la verificación de estado antes de recibir tráfico health_check obligatorio ; } }
Aquí se incluyen tanto el parámetro obligatorio
de la directiva health_check
como el parámetro slow_start
de la directiva del servidor
( HTTP o TCP/UDP ). Los servidores que se agregan al grupo ascendente mediante las interfaces API o DNS se marcan como no saludables y no reciben tráfico hasta que pasan la verificación de estado; en ese momento, comienzan a recibir una cantidad de tráfico que aumenta gradualmente durante un lapso de 30 segundos.
Es tan importante implementar controles de estado a nivel de aplicação para servidores UDP como para servidores HTTP y TCP, de modo que el tráfico de producción no se envíe a servidores que no sean completamente funcionales. NGINX Plus admite comprobaciones de estado activas para UDP, pero antes de NGINX Plus R12 era necesario crear un bloque de coincidencia
que definiera los datos a enviar
y la respuesta a esperar
. Puede resultar complicado determinar los valores adecuados cuando se utilizan protocolos binarios o con protocolos de enlace complejos. Para tales aplicações, NGINX Plus R12 ahora admite una verificación de estado de “configuración cero” para UDP que prueba la disponibilidad de la aplicação sin necesidad de definir cadenas de envío y espera. Agregue el parámetro udp
a la directiva health_check
para una verificación de estado UDP básica.
upstream udp_app { servidor backend1.example.com:1234; servidor backend2.example.com:1234; } servidor { escuchar 1234 udp; proxy_pass udp_app; # Comprobación básica del estado de UDP health_check udp ; }
Los certificados de cliente SSL se utilizan comúnmente para autenticar a los usuarios en sitios web protegidos. NGINX Plus R12 agrega soporte de autenticación para servicios TCP protegidos con SSL al soporte HTTP existente. Esto se utiliza normalmente para la autenticación de máquina a máquina, a diferencia del inicio de sesión del usuario final, y le permite usar NGINX Plus tanto para la terminación SSL como para la autenticación del cliente al equilibrar la carga de los protocolos de capa 4. Los ejemplos incluyen la autenticación de dispositivos IoT para la comunicación con el protocolo MQTT.
La variable $ssl_client_verify
ahora incluye información adicional para eventos de autenticación de cliente fallida. Esto incluye motivos como certificados “revocados” y “vencidos”.
Se ha cambiado el formato de las variables $ssl_client_i_dn
y $ssl_client_s_dn
para cumplir con las RFC2253 y4514 . Para obtener más detalles, consulte Cambios en el comportamiento .
NGINX Plus R10 introdujo compatibilidad nativa con JSON Web Token (JWT) para casos de uso de OAuth 2.0 y OpenID Connect . Uno de los principales casos de uso es que NGINX Plus valide un JWT, inspeccione los campos que contiene y los pase a la aplicação backend como encabezados HTTP. Esto permite que las aplicações participen fácilmente en un entorno de inicio de sesión único (SSO) OAuth 2.0 descargando la validación del token a NGINX Plus y consumiendo la identidad del usuario mediante la lectura de encabezados HTTP.
NGINX Plus R10 y versiones posteriores pueden inspeccionar los campos definidos en la especificación JWT. NGINX Plus R12 extiende la compatibilidad con JWT para que se pueda acceder a cualquier campo de un JWT (incluidos los campos personalizados) como una variable NGINX y, por lo tanto, se pueda representar por proxy, registrar o usar para tomar decisiones de autorización.
Si está ejecutando NGINX Plus, le recomendamos encarecidamente que actualice a la versión 12 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 .
Consulte los cambios de comportamiento descritos anteriormente antes de continuar con la actualización.
Si aún no ha probado NGINX Plus , le recomendamos que lo pruebe para la aceleración web, el equilibrio de carga y la entrega de aplicação , o como un servidor web totalmente compatible con una API para una mejor supervisión y gestión de la configuración . 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 ofrecer y escalar sus aplicações.
"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.