Presentamos NGINX Plus R9

NGINX | 12 de abril de 2016

NGINX, Inc. se complace en anunciar la disponibilidad de NGINX Plus Release 9 (R9), la versión más reciente de nuestra plataforma de entrega de aplicaciones. Esta actualización incorpora dos importantes novedades: la posibilidad de cargar dinámicamente extensiones avanzadas en NGINX Plus sin necesidad de binarios personalizados y el equilibrio de carga UDP con soporte comercial junto con nuestras actuales funciones de equilibrio de carga TCP y HTTP.

Además de las interesantes novedades de NGINX Plus R9, estrenamos nuevas opciones de precios y soporte. NGINX Plus está ahora disponible mediante un modelo de tarifa plana que permite un uso ilimitado en toda su aplicación o empresa por un precio fijo. NGINX Plus también puede adquirirse ahora con tres niveles de soporte diferentes: soporte Basic 9×5 para aplicaciones que no sean de producción, soporte Professional 24×7 por teléfono o correo electrónico y soporte Enterprise 24×7 con respuesta garantizada en un plazo de 30 minutos.

Editor: Para obtener más información sobre las principales novedades de NGINX Plus R9, consulte estos recursos relacionados.

Las principales novedades de NGINX Plus R9 son:

  • Módulos dinámicos – NGINX Plus ahora se puede ampliar en tiempo de ejecución mediante módulos cargables dinámicamente. Esto significa que puede seleccionar únicamente las extensiones que desee e instalarlas directamente desde el repositorio de NGINX Plus, al que se puede acceder mediante los comandos estándar apt y yum. Con el tiempo, distribuiremos un conjunto cada vez mayor de extensiones probadas y totalmente certificadas para nuestro software. Los módulos más populares desarrollados por NGINX y por terceros, como el que permite utilizar el lenguaje de programación Lua, ya se han convertido al nuevo formato cargable dinámicamente. También hemos publicado instrucciones para los propietarios de módulos de terceros para que conviertan sus módulos al nuevo formato, un requisito previo para poder añadirlos a nuestro repositorio.
  • Balanceo de carga UDP – Al añadir el balanceo de carga UDP a sus capacidades existentes de balanceo de carga TCP y HTTP, NGINX Plus ahora puede balancear la carga de prácticamente cualquier aplicación. El mes pasado añadimos balanceo de carga UDP en NGINX Open Source y, con esta versión, ampliamos la compatibilidad a NGINX Plus con funciones avanzadas adicionales. NGINX Plus supervisa los servicios UDP mediante comprobaciones de estado activas, proporciona una visibilidad esencial gracias a una gran cantidad de estadísticas y permite añadir y eliminar servidores dinámicamente. UDP se utiliza habitualmente para protocolos ligeros que no son de naturaleza transaccional, como DNS (resolución de nombres de dominio en direcciones), syslog (registro ligero) y RADIUS (un protocolo de autenticación). UDP también se está convirtiendo en uno de los protocolos preferidos para las aplicaciones de IoT debido a sus reducidos requisitos de ancho de banda. NGINX Plus puede distribuir y balancear fácilmente la carga de estas aplicaciones, tanto nuevas como existentes.
  • Descubrimiento de servicios mediante registros SRV de DNS – Las aplicaciones basadas en microservicios son dinámicas: los servicios pueden ampliarse, reducirse y trasladarse según sea necesario. Una buena forma de mantenerse al tanto del estado actual de los servicios es utilizar el descubrimiento de servicios. Muchas plataformas de descubrimiento de servicios, como Consul y etcd (SkyDNS), ofrecen una interfaz DNS para que clientes como NGINX Plus soliciten información sobre los servicios descubiertos. El número de puerto que utilizan los servicios suele asignarse dinámicamente. Por ello, las plataformas de descubrimiento de servicios utilizan registros SRV de DNS que incluyen información sobre el número de puerto. NGINX Plus ahora admite registros SRV de DNS y puede utilizar solicitudes DNS para consultar en el registro de servicios la ubicación de los servicios, incluida la información sobre los puertos asignados dinámicamente.
  • Precios de NGINX Plus por aplicación – Para garantizar el máximo rendimiento y tiempo de actividad durante periodos de gran crecimiento, picos estacionales o fluctuaciones del tráfico, muchas aplicaciones requieren una infraestructura dinámica. Estas aplicaciones también suelen utilizar microservicios o arquitecturas distribuidas, así como contenedores o máquinas virtuales para su ejecución. Pagar el software por instancia o por hora de uso de la máquina no ofrece la flexibilidad ni la rentabilidad que requieren estas aplicaciones modernas. Para estos casos de uso, presentamos los precios de NGINX Plus por aplicación. Este modelo ofrece un uso ilimitado de las funciones avanzadas y los binarios con soporte comercial de NGINX Plus por una tarifa fija anual por aplicación. Independientemente del número de máquinas virtuales, contenedores, nodos, conexiones simultáneas o usuarios, se paga una única tarifa reducida durante todo el año. Implemente NGINX Plus cuando, donde y como lo necesite en la infraestructura de su aplicación y en los entornos de desarrollo, pruebas, preproducción, recuperación ante desastres y producción, sin tener que preocuparse por facturas impredecibles basadas en el consumo ni esperar a obtener claves de licencia cuando necesite aumentar la capacidad de forma repentina.

Características de NGINX Plus R9 en detalle

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

Módulos dinámicos

Tanto NGINX como NGINX Plus tienen una arquitectura modular. Su funcionalidad principal puede ampliarse mediante módulos desarrollados tanto por terceros como por el equipo principal de ingeniería de NGINX. Estos módulos añaden funcionalidades clave, como la integración de scripts Lua y la geolocalización de usuarios según su dirección IP. Hay más de 100 módulos de terceros y más de 60 módulos oficiales de NGINX disponibles. Incluimos 56 de ellos en el paquete base nginx‑plus y otros 10 en el paquete nginx‑plus‑extras (la lista completa está disponible en Especificaciones técnicas de NGINX Plus).

Las funcionalidades se pueden incorporar a NGINX Plus según sea necesario

Con esta versión, los módulos adicionales del paquete nginx‑plus‑extras (tanto de terceros como oficiales de NGINX) también se pueden cargar dinámicamente en el paquete base de NGINX Plus, nginx‑plus. Esto permite cargar únicamente los módulos adicionales que realmente necesite.

Estos módulos están disponibles en el repositorio de NGINX Plus y tenemos previsto añadir más módulos al repositorio en los próximos meses. Recomendamos a quienes utilicen actualmente el paquete nginx‑plus‑extras que migren al paquete principal nginx‑plus, ya que dejaremos de admitir el paquete nginx‑plus‑extras en una versión posterior.

Probamos cada módulo dinámico cargándolo en el núcleo de NGINX Plus antes de ejecutar nuestra amplia batería de pruebas de cada versión, para asegurarnos de que, cuando no está configurado, el módulo no interfiera en el correcto funcionamiento de NGINX Plus. Realizaremos un seguimiento de las actualizaciones de los módulos y publicaremos nuevas compilaciones con cada versión, así como cuando se notifique un problema de seguridad crítico entre versiones.

Disponer de módulos dinámicos nos permite distribuir un único binario de NGINX Plus con las funcionalidades que todo el mundo utiliza. De este modo, los administradores pueden elegir los módulos adicionales que quieran utilizar.

Cómo cargar módulos dinámicos en NGINX Plus

Para instalar y cargar módulos dinámicamente, siga los pasos que se indican a continuación. Estos pasos presuponen que ha configurado su herramienta de gestión de paquetes para obtener los archivos de NGINX, Inc. en lugar de la distribución del proveedor del sistema operativo.

  1. Utilice la herramienta estándar de gestión de paquetes de su sistema operativo (apt o yum, por ejemplo) para instalar la imagen base de nginx‑plus y los módulos que desee cargar dinámicamente (repita el comando de instalación para cada módulo). Los siguientes comandos son adecuados para sistemas basados en Debian.
# apt-get update# apt-get install nginx-plus
# apt-get install module-name
  1. Los nombres que puede usar en lugar de module‑name en esta versión son: El directorio /etc/nginx/modules se crea automáticamente con enlaces simbólicos a las ubicaciones donde están instalados los archivos .so de los módulos seleccionados. Notas:
# apt-get update# apt-get remove nginx-plus-extras
# apt-get install nginx-plus
# apt-get install module-name
  • Algunos módulos no están disponibles para determinadas versiones del sistema operativo debido a las limitaciones de este. Para obtener más información y consultar las descripciones de los módulos, consulte las Especificaciones técnicas de NGINX Plus.
  1. En el contexto principal (de nivel superior) de /etc/nginx/nginx.conf, añada una directiva load_module por cada módulo que se pueda cargar dinámicamente:
load_module modules/module-name.so;
  1. Compruebe que la sintaxis de la nueva configuración sea válida y vuelva a cargar NGINX Plus.
# nginx -t && nginx -s reload
  1. Los módulos enumerados en nginx.conf se cargan dinámicamente en NGINX Plus.

Equilibrado de carga UDP

El mes pasado lanzamos el balanceo de carga UDP en NGINX Open Source, y NGINX Plus R9 amplía esta funcionalidad con comprobaciones de estado, supervisión ampliada del estado y reconfiguración sobre la marcha.

NGINX Plus R9 y versiones posteriores admiten el balanceo de carga UDP, ideal para ofrecer un servicio DNS de alta disponibilidad
El balanceo de carga UDP, incorporado en NGINX Plus R9, proporciona alta disponibilidad para los servicios DNS

Al igual que con el balanceo de carga TCP, la configuración del balanceo de carga UDP se incluye en el contexto stream. Y, como ocurre con el balanceo de carga HTTP y TCP, el balanceo de carga UDP utiliza un grupo upstream para definir el conjunto de servidores de origen que proporcionan el servicio basado en UDP y el algoritmo que se utilizará para balancear el tráfico entre los servidores.

La configuración también define un servidor virtual para cada puerto UDP, con una directiva proxy_pass que especifica el grupo de servidores upstream que proporciona el servicio asociado:

stream {    upstream dns_upstreams {
        least_time;
        server dns-server-1-ip:53;
        server dns-server-2-ip:53;
    }
 
    server {
        listen 53 udp;
        listen 53; #tcp
        proxy_pass dns_upstreams;
        proxy_timeout 1s;
        proxy_responses 1;
        error_log logs/dns.log;
    }
}

Este ejemplo de configuración sirve para equilibrar la carga de los servicios DNS. En el bloque upstream, configuramos el algoritmo Least Time para que NGINX Plus envíe cada solicitud al servidor que tenga menos «conexiones» en ese momento y responda con mayor rapidez. En el bloque server, escuchamos el tráfico UDP y TCP, ya que DNS puede funcionar con ambos protocolos. La directiva proxy_responses controla cuántas respuestas recibe NGINX Plus del servidor upstream antes de liberar los recursos asociados a la «conexión» UDP. Dado que DNS es un protocolo sencillo de solicitud-respuesta, normalmente basta con una respuesta.

NGINX Open Source incluye comprobaciones de estado básicas para UDP. Si un servidor UDP ascendente no responde a una solicitud dentro del periodo de tiempo de espera definido o devuelve un error ICMP, NGINX y NGINX Plus dejan de enviarle tráfico durante un periodo de tiempo determinado.

NGINX Plus R9 incorpora comprobaciones de estado activas para servicios UDP, similares a las que se realizan para el tráfico HTTP y TCP. Puede configurar NGINX Plus para que envíe solicitudes UDP especiales a los servidores ascendentes y definir el tipo de respuesta que deben devolver para que se consideren en buen estado. Dado que UDP no dispone de los mecanismos de entrega fiable que proporciona TCP para HTTP, las comprobaciones de estado activas son aún más importantes para las aplicaciones UDP que para las aplicaciones TCP y HTTP.

Con NGINX Plus también puede añadir o eliminar servidores ascendentes sobre la marcha. Esto facilita, por ejemplo, desconectar servidores para realizar tareas de mantenimiento y volver a incorporarlos después al grupo con equilibrio de carga. Las nuevas estadísticas relacionadas con UDP del módulo Estado de NGINX Plus y del panel de supervisión de la actividad en tiempo real le proporcionan información esencial sobre el rendimiento de sus servidores.

NGINX Plus R9 equilibra la carga de las aplicaciones sencillas basadas en UDP más utilizadas: DNS, RADIUS, syslog y NTP. Actualmente no se admiten protocolos UDP de larga duración, como la voz sobre IP y otras aplicaciones basadas en SIP.

Descubrimiento de servicios mediante registros DNS SRV Records

Las aplicaciones web modernas se componen de múltiples componentes de aplicación pequeños —servidores web, servidores de aplicaciones, bases de datos, etc.—. Un balanceador de carga frontal como NGINX Plus inspecciona el tráfico entrante y, a continuación, enruta y distribuye las solicitudes entre los componentes de la aplicación.

Cuando los componentes de una aplicación se implementan en plataformas virtuales o basadas en contenedores, pueden tener direcciones IP y puertos impredecibles. La detección de servicios es el proceso mediante el cual un cliente local (como el balanceador de carga de frontend NGINX Plus) localiza estos componentes para poder enviarles tráfico. Por lo general, la detección de servicios se lleva a cabo mediante una «base de datos de servicios» como Consul, etcd o ZooKeeper.

En NGINX Plus R8, anunciamos una versión persistente de nuestra API de reconfiguración dinámica y compartimos soluciones de demostración para Consul, etcd y ZooKeeper que consultan la base de datos de servicios e incorporan los cambios de configuración en NGINX Plus. En NGINX Plus R9, nos complace anunciar la compatibilidad con un método alternativo que utiliza consultas DNS SRV. Las consultas DNS SRV devuelven la dirección IP, el puerto, la prioridad y el peso de los servidores de aplicaciones de un tipo determinado.

Consul y SkyDNS para etcd proporcionan interfaces DNS que los clientes pueden utilizar para recuperar registros SRV. NGINX Plus obtiene la configuración de balanceo de carga consultando directamente la interfaz DNS de un servicio. NGINX Plus vuelve a comprobar el servicio periódicamente, por lo que cualquier cambio se propaga de forma rápida y automática.

En el siguiente ejemplo se configura NGINX Plus para obtener la lista de servidores ascendentes de my_service mediante DNS. El parámetro service=http de la directiva server habilita la compatibilidad con los registros DNS SRV. NGINX Plus ahora detecta automáticamente las instancias de la aplicación que respaldan my_service.

http {     resolver dns-server-ip;
 
    upstream my_service {
        zone backend 64k;
        server hostname-for-my_service service=http resolve;
    }
 
    server {
        # ...
 
        location /my_service {
            # ...
            proxy_pass http://my_service;
        }
    }
}

Precios de la aplicación NGINX Plus

Los precios por instancia son una excelente forma de empezar a utilizar NGINX Plus y ofrecen una alternativa muy rentable a los balanceadores de carga de hardware, pero los posibles usos de NGINX Plus van mucho más allá de la mera sustitución del hardware. Su arquitectura de software ligera hace que NGINX Plus sea ideal para el balanceo de carga dedicado de cada aplicación y, dado que NGINX Plus se basa en NGINX Open Source, también puede sustituir a los servidores web y de aplicaciones de su aplicación. Estos casos de uso impulsan cada vez más implementaciones de NGINX Plus para las que los precios por instancia no resultan lo bastante rentables ni flexibles.

Con NGINX Plus R9 presentamos un nuevo modelo de precios por aplicación «todo incluido» que permite ejecutar tantas instancias de NGINX Plus como desee para una aplicación específica. Implemente NGINX Plus cuando, donde y como lo necesite dentro de la infraestructura de su aplicación y en entornos de desarrollo, pruebas, preproducción, recuperación ante desastres y producción. Independientemente del número de máquinas virtuales, contenedores o nodos, pagará una única tarifa fija durante todo el año.

Cada suscripción incluye todas las funcionalidades del software NGINX Plus y nuestro galardonado servicio de asistencia técnica y ayuda con la configuración. Además, si opta por el modelo de precios por aplicación, tendrá derecho a:

El uso es ilimitado para cada aplicación. Una aplicación se define como los componentes de software y el equipo que dan soporte a una única aplicación web o a una aplicación de escritorio o móvil con nombre propio. El modelo contempla y admite arquitecturas basadas en microservicios y otras arquitecturas distribuidas.

También está disponible una suscripción con licencia para todo el sitio, que permite el uso ilimitado de NGINX Plus en toda la organización.

Funciones adicionales

NGINX Plus R9 incorpora una serie de mejoras adicionales, entre las que se incluyen:

  • Mejoras en el rendimiento de la caché – El año pasado, introdujimos un modelo de grupos de hilos para mejorar las operaciones de lectura de la caché y evitar que pudieran bloquear el núcleo de NGINX. Esto permitió multiplicar potencialmente por nueve el rendimiento de determinadas cargas de trabajo de la caché. En esta versión, NGINX Plus también puede delegar en hilos las escrituras en disco de la caché.
  • Consultas DNS a través de TCP – De forma predeterminada, NGINX Plus utiliza UDP para las consultas DNS. Sin embargo, cuando las respuestas DNS son grandes –por ejemplo, cuando un nombre se resuelve en un gran número de servidores–, es posible que la respuesta completa no quepa en un único datagrama UDP (limitado a 512 bytes). Las respuestas incompletas se marcan como truncadas y NGINX Plus vuelve a intentar inmediatamente la solicitud mediante TCP. Esto permite que NGINX Plus ofrezca una mejor compatibilidad con implementaciones de servidores dinámicas y de gran tamaño.
  • Reintento de solicitudes no idempotentes – Cuando una solicitud HTTP falla debido a un error o a que se agota el tiempo de espera, NGINX Plus vuelve a intentarla de forma predeterminada y automática con otro servidor del grupo de servidores ascendentes. Puede utilizar la directiva proxy_next_upstream para definir los tipos de errores ante los que NGINX Plus repite las solicitudes, incluidos códigos de respuesta 4xx o 5xx específicos. Por convención, las solicitudes POST no suelen volver a intentarse porque los datos del cuerpo se transmiten al servidor y no pueden volver a enviarse si este falla. Sin embargo, en determinadas circunstancias de fallo, las versiones anteriores de NGINX Plus volvían a intentar las solicitudes POST, lo que contradecía la premisa de que no se reintentaban por no ser idempotentes. NGINX Plus ya no vuelve a intentar automáticamente las solicitudes HTTP no idempotentes que han fallado (POST, LOCK y PATCH). Para restablecer el comportamiento anterior y permitir que NGINX Plus vuelva a intentar las solicitudes no idempotentes fallidas cuando sea posible, incluya el nuevo parámetro non_idempotent en la directiva proxy_next_upstream.

Actualice o pruebe NGINX Plus

Si utiliza NGINX Plus, le recomendamos encarecidamente que actualice a la versión 9 lo antes posible. Obtendrá diversas correcciones y mejoras, y nos facilitará prestarle asistencia si necesita abrir una incidencia de soporte.

Si aún no ha probado NGINX Plus, le recomendamos que lo pruebe para acelerar la web, equilibrar la carga y distribuir aplicaciones, o como servidor web con soporte completo y una API para mejorar la supervisión y la reconfiguración dinámica. Empiece hoy mismo con una prueba gratuita de 30 días y compruebe por sí mismo cómo NGINX Plus puede ayudarle a distribuir sus aplicaciones y ampliarlas.

Editor: Para obtener más información sobre las principales novedades de NGINX Plus R9, consulte estos recursos relacionados.


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.