BLOG | NGINX

Annonce de NGINX Plus R11

NGINX-Partie-de-F5-horiz-black-type-RGB
Vignette d'Owen Garrett
Owen Garrett
Publié le 25 octobre 2016

Nous sommes ravis d'annoncer la disponibilité de NGINX Plus Release 11 (R11) . Avec cette version, nous fournissons un certain nombre de nouvelles fonctionnalités dans NGINX Plus pour rendre le produit plus facile à étendre et à personnaliser, et pour prendre en charge une gamme encore plus large de déploiements.

NGINX Plus R11 introduit la compatibilité binaire pour les modules dynamiques . Cela signifie que les modules dynamiques qui ont été compilés avec NGINX Open Source peuvent être chargés dans NGINX Plus.

Vous pouvez exploiter le grand nombre de modules NGINX tiers pour étendre et ajouter des fonctionnalités à NGINX Plus, en vous appuyant sur une gamme de modules open source et produits commercialement. Les développeurs peuvent créer des extensions personnalisées, des modules complémentaires et de nouveaux produits basés sur le cœur NGINX Plus pris en charge.

NGINX Plus R11 ajoute également un certain nombre d'autres améliorations :

  • Équilibrage de charge TCP/UDP amélioré – Les nouvelles fonctionnalités incluent le routage du nom du serveur SSL, une nouvelle fonctionnalité de journalisation, des variables supplémentaires et une prise en charge améliorée du protocole PROXY. Ces nouvelles fonctionnalités améliorent les capacités de débogage et vous permettent de prendre en charge une gamme plus large d'applications d'entreprise.
  • Meilleure géolocalisation par adresse IP – Le module tiers GeoIP2 est désormais certifié et fourni aux clients NGINX Plus. Cette nouvelle version fournit des détails de localisation localisés et plus riches que le module GeoIP d'origine.
  • Module JavaScript NGINX amélioré – NGINX JavaScript est le langage de configuration de nouvelle génération pour NGINX Plus, basé sur JavaScript. Les nouvelles fonctionnalités vous permettent de modifier les données de demande et de réponse à la volée dans le module Stream (TCP/UDP).

 

NGINX Plus R11 en détail

Compatibilité binaire pour les modules dynamiques

La communauté NGINX a développé une large gamme d'extensions de modules pour NGINX Open Source : solutions de sécurité, modules d'authentification, voire environnements d'exécution d'applications complets tels que Lua .

Nous créons et maintenons certains de ces modules tiers pour NGINX Plus, en les mettant à jour à chaque version et en les distribuant via notre référentiel NGINX Plus. Ces builds sont certifiées pour fonctionner correctement avec NGINX Plus et notre équipe d'assistance fournit une assistance technique pour l'installation et la configuration de base.

Avec la version R11, vous pouvez désormais compiler tous les modules tiers conformes à la version Open Source NGINX correspondante, puis charger ces modules en toute sécurité dans NGINX Plus.

Chaque version de NGINX Plus est construite sur une version de NGINX Open Source . Exécutez nginx -v pour déterminer le numéro de version open source correspondant ; pour NGINX Plus R11 , il s'agit de NGINX 1.11.5.

$ nginx -v version nginx : nginx/1.11.5 (nginx-plus-r11)

Pour compiler des modules dynamiques, vous obtenez d'abord le code source NGINX sur lequel votre version NGINX Plus est basée (ici, nginx-1.11.5 pour NGINX Plus R11 ) :

$ wget https://nginx.org/download/nginx-1.11.5.tar.gz $ tar -xzvf nginx-1.11.5.tar.gz

Ensuite, exécutez la commande configure avec le nouvel argument --with-compat pour créer un environnement de build standard compatible avec NGINX Plus :

$ cd nginx-1.11.5 $ ./configure --with-compat --add-dynamic-module=/chemin/vers/module $ make modules

Pour plus de détails sur la compilation de vos propres modules pour fonctionner avec NGINX Plus, consultez Compilation de modules dynamiques pour NGINX Plus<.htmla> sur notre blog.

Les modules que vous compilez vous-même (modules communautaires, modules fournis par des partenaires tiers et modules personnalisés) ne sont pas testés ni pris en charge par NGINX. Si vous recherchez une assistance technique pour un problème, l'équipe d'assistance technique de NGINX peut vous demander de supprimer un module non pris en charge et de reproduire le problème dans le cadre de notre processus d'assistance technique, afin de pouvoir vérifier si le problème est dû au module non pris en charge ou non.

Équilibrage de charge TCP/UDP amélioré

NGINX Plus R11 prend en charge une gamme plus large d'applications avec des améliorations clés de l'équilibrage de charge TCP et UDP .

Routage du nom du serveur SSL

Vous pouvez désormais utiliser l’équilibreur de charge TCP/UDP de NGINX Plus pour équilibrer la charge des connexions SSL/TLS sans les déchiffrer. Cela est utile dans un environnement sécurisé ou à fort trafic où vous souhaitez transférer des connexions chiffrées SSL/TLS vers un serveur distant.

Avec la nouvelle fonctionnalité de prélecture du nom du serveur SSL, NGINX Plus R11 peut inspecter chaque connexion SSL/TLS entrante et déterminer le domaine cible (comme la valeur d'indication du nom du serveur [SNI]) vers lequel acheminer la connexion.

Le nom du serveur SSL est fourni dans la nouvelle variable $ssl_preread_server_name . Il contient le nom de l'hôte cible tel qu'extrait du champ SNI de la négociation SSL/TLS.

Vous pouvez utiliser la variable comme argument de la directive proxy_pass ou comme champ dans le journal d'accès du serveur virtuel. Notez que pour activer cette fonctionnalité, vous devez inclure la directive ssl_preread dans la configuration, comme indiqué dans cet exemple :

Prise en charge de la journalisation des accès

Le nouveau module Stream Log de NGINX Plus R11 fournit le même type de journalisation d'accès pour les connexions TCP/UDP que celui disponible dans les versions précédentes pour les connexions HTTP. Vous pouvez désormais enregistrer chaque session TCP/UDP traitée par le module Stream , en inspectant les débits de données, les décisions d'équilibrage de charge, les conditions d'erreur, etc. Il s’agit d’une fonctionnalité essentielle lors du débogage ou de l’audit des transactions TCP ou UDP.

Le module Stream expose un grand nombre de variables et toutes peuvent être enregistrées. Vous pouvez personnaliser le format de journal par défaut en utilisant des variables de la manière suivante :

Prise en charge améliorée du protocole PROXY

Cette version rend notre prise en charge du protocole PROXY pour les connexions TCP plus complète, en permettant à NGINX Plus d'accepter les connexions TCP améliorées à l'aide du protocole PROXY.

Cette fonctionnalité améliore votre capacité à gérer les connexions TCP avec NGINX Plus, car vous pouvez déterminer la véritable adresse IP source de la connexion à des fins de journalisation ou d'authentification.

Mesures d'état étendues supplémentaires

Le module Statut signale désormais davantage de mesures dans la catégorie Flux , notamment le nombre de sessions traitées et le nombre de diverses conditions d'erreur.

Outre la nouvelle commande access_log du module Stream Log, les mesures supplémentaires facilitent la surveillance du comportement des services TCP et UDP et la détection d'un taux d'erreurs inattendu.

[Éditeur – Le module Statut est obsolète et remplacé par le module API NGINX Plus , qui a été introduit dans NGINX Plus R13 .

Module GeoIP2 pour une meilleure géolocalisation

Le module tiers GeoIP2 est désormais certifié et disponible pour les utilisateurs de NGINX Plus dans notre référentiel. Le module GeoIP2 utilise les bases de données au format MaxMind GeoIP2, qui fournissent des noms localisés et sont plus riches en détails que celles utilisées par le module GeoIP d'origine.

Pour obtenir le nouveau module, exécutez ces commandes (appropriées pour Debian et Ubuntu) :

$ apt-get mise à jour $ apt-get installation nginx-plus-module-geoip2

Dans le contexte principal (de niveau supérieur) de /etc/nginx/nginx.conf , ajoutez une directive load_module pour le module nouvellement installé :

Pour plus d'informations sur le module GeoIP2, consultez la page officielle GitHub .

Améliorations apportées au module JavaScript NGINX

Éditeur – Le cas d’utilisation suivant n’est qu’un parmi tant d’autres pour le module JavaScript NGINX. Pour obtenir la liste de tous les cas d’utilisation, consultez Cas d’utilisation du module JavaScript NGINX .

Cet article a été mis à jour pour utiliser l'objet de session ( s ) refactorisé pour le module Stream, qui a été introduit dans NGINX JavaScript 0.2.4 .

NGINX JavaScript est le langage de configuration de nouvelle génération pour NGINX et NGINX Plus. Avec NGINX JavaScript, vous pouvez utiliser une syntaxe JavaScript familière pour effectuer des opérations plus complexes que celles possibles avec le langage de configuration NGINX standard. Cette version inclut un certain nombre d’améliorations apportées au module JavaScript NGINX.

NGINX JavaScript est toujours en cours de développement et les mises à jour de la version pointent vers la fonctionnalité finale prévue. Dans cette étape importante, nous nous sommes concentrés sur deux domaines : l’intégration avec le module Stream et une prise en charge plus large du langage JavaScript.

Dans le module Stream, NGINX JavaScript peut accéder à plusieurs phases de traitement des requêtes internes afin d'inspecter et de modifier les données. Par exemple, le code JavaScript NGINX suivant illustre comment inspecter le troisième message dans un flux de protocole MySQL et rechercher des modèles de clé pour identifier l'opération SQL :

La prise en charge du langage principal JavaScript NGINX a été considérablement étendue, avec la prise en charge d'autres objets et fonctions intégrés. Les mises à jour sont partagées sur le référentiel source Mercurial et via le référentiel de packages NGINX Plus.

Amélioration des performances de mise en cache

NGINX Plus exploite un processus de gestion de cache distinct qui est responsable de l'élagage du cache du disque. Dans certaines circonstances, le gestionnaire de cache peut avoir besoin de supprimer un grand nombre de fichiers, par exemple lorsqu'une grande quantité de mémoire doit être récupérée.

Grâce à la nouvelle fonctionnalité « unlink throttling », vous pouvez spécifier un taux de suppression maximal pour les fichiers mis en cache. Un taux inférieur peut réduire la charge sur le disque sous-jacent et donc améliorer les performances du système.

Le taux de suppression est contrôlé par les nouveaux paramètres manager_files , manager_threshold et manager_sleep des directives proxy_cache_path , fastcgi_cache_path , scgi_cache_path et uwsgi_cache_path .

Mettre à niveau ou essayer NGINX Plus

Si vous utilisez NGINX Plus, nous vous encourageons à effectuer une mise à niveau vers la version 11 lorsque cela vous convient. Vous bénéficierez d'un certain nombre de correctifs et d'améliorations, et cela nous aidera à vous aider si vous devez ouvrir un ticket d'assistance. Les instructions d'installation et de mise à niveau sont disponibles sur le portail client .

Note: Comme annoncé précédemment , NGINX Plus R11 et versions ultérieures n'incluent pas le package nginx-plus-extras . Si vous utilisez toujours ce package, vous devez plutôt déployer le package nginx-plus et charger dynamiquement les modules supplémentaires dont vous avez besoin à partir du référentiel de modules NGINX Plus.

Si vous n'avez pas essayé NGINX Plus , nous vous encourageons à l'essayer pour l'accélération Web, l'équilibrage de charge et la distribution d'applications, ou en tant que serveur Web entièrement pris en charge avec des API de surveillance et de gestion améliorées. Vous pouvez commencer dès aujourd'hui avec un essai gratuit de 30 jours et voir par vous-même comment NGINX Plus peut vous aider à fournir et à faire évoluer vos applications.


« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."