Nous sommes heureux d’annoncer la disponibilité de NGINX Plus Release 11 (R11). Cette version propose plusieurs nouvelles fonctionnalités qui facilitent l’extension et la personnalisation de NGINX Plus, tout en prenant en charge un éventail encore plus large de déploiements.
NGINX Plus R11 introduit la compatibilité binaire pour les modules dynamiques. Cela signifie que les modules dynamiques compilés pour NGINX Open Source peuvent être chargés dans NGINX Plus.
Vous pouvez tirer parti du grand nombre de modules NGINX tiers pour étendre les fonctionnalités de NGINX Plus et en ajouter de nouvelles, grâce à un large éventail de modules open source et commerciaux. Les développeurs peuvent créer des extensions personnalisées, des modules complémentaires et de nouveaux produits basés sur le cœur pris en charge de NGINX Plus.
NGINX Plus R11 apporte également plusieurs autres améliorations :
- Amélioration de la répartition de charge TCP/UDP – Les nouvelles fonctionnalités incluent le routage basé sur le nom de serveur SSL, de nouvelles fonctions de journalisation, des variables supplémentaires et une meilleure prise en charge du protocole PROXY. Elles améliorent les capacités de débogage et permettent de prendre en charge un plus large éventail d’applications d’entreprise.
- Meilleure géolocalisation par adresse IP – Le module tiers GeoIP2 est désormais certifié et fourni aux clients de NGINX Plus. Cette nouvelle version offre des informations de localisation plus détaillées et localisées que le module GeoIP d’origine.
- Module JavaScript NGINX amélioré – NGINX JavaScript est le langage de configuration nouvelle génération pour NGINX Plus, basé sur JavaScript. De nouvelles fonctionnalités vous permettent de modifier à la volée les données des requêtes et des réponses dans le module Stream (TCP/UDP).
NGINX Plus R11 en détail
Compatibilité binaire des modules dynamiques
La communauté NGINX a développé un large éventail d’extensions de modules pour NGINX Open Source : solutions de sécurité, modules d’authentification et même environnements complets d’exécution d’applications tels que Lua.
Nous développons et assurons la maintenance de certains de ces modules tiers pour NGINX Plus, en les mettant à jour à chaque nouvelle version et en les distribuant via notre dépôt NGINX Plus. Ces versions sont certifiées compatibles avec NGINX Plus, et notre équipe d’assistance fournit un support technique pour leur installation et leur configuration de base.
Avec la version R11, vous pouvez désormais compiler tout module tiers compatible avec la version correspondante de NGINX Open Source, puis charger ces modules en toute sécurité dans NGINX Plus.
Chaque version de NGINX Plus est basée 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 -vnginx version: nginx/1.11.5 (nginx-plus-r11)Pour compiler des modules dynamiques, commencez par récupérer le code source de NGINX sur lequel repose votre version de NGINX Plus (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.gzExécutez ensuite la commande « configure » avec le nouvel argument « --with-compat » afin de créer un environnement de compilation standard compatible avec NGINX Plus :
$ cd nginx-1.11.5$ ./configure --with-compat --add-dynamic-module=/path/to/module
$ make modulesPour plus d’informations sur la compilation de vos propres modules destinés à fonctionner avec NGINX Plus, consultez Compilation de modules dynamiques pour NGINX Plus<.htmla> sur notre blog.
Équilibrage de charge TCP/UDP amélioré
NGINX Plus R11 prend en charge un éventail plus large d’applications grâce à des améliorations majeures apportées à la répartition de charge TCP et UDP.
Routage par nom de serveur SSL
Vous pouvez désormais utiliser l’équilibreur de charge TCP/UDP de NGINX Plus pour répartir les connexions SSL/TLS sans les déchiffrer. Cette fonctionnalité est utile dans un environnement sécurisé ou à fort trafic lorsque vous souhaitez transférer des connexions chiffrées par SSL/TLS vers un serveur distant.
Grâce à la nouvelle fonctionnalité de lecture anticipée du nom de serveur SSL, NGINX Plus R11 peut inspecter chaque connexion SSL/TLS entrante et déterminer le domaine cible (par exemple, la valeur Server Name Indication [SNI]) vers lequel acheminer la connexion.
Le nom du serveur SSL est fourni dans la nouvelle variable « $ssl_preread_server_name ». Celle-ci contient le nom de l’hôte cible 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 dans l’exemple suivant :
Chargement de l’exemple de code…
Prise en charge de la journalisation des accès
Le nouveau module « Stream Log » de NGINX Plus R11 offre pour les connexions TCP/UDP le même type de journalisation des accès que celui proposé dans les versions précédentes pour les connexions HTTP. Vous pouvez désormais journaliser chaque session TCP/UDP traitée par le module « Stream », afin d’examiner les débits de données, les décisions d’équilibrage de charge, les conditions d’erreur, etc. Cette fonctionnalité est essentielle pour déboguer ou auditer les transactions TCP ou UDP.
Le module Stream expose un grand nombre de variables, qui peuvent toutes être journalisées. Vous pouvez personnaliser le format de journalisation par défaut en utilisant des variables comme suit :
Chargement de l’exemple de code…
Prise en charge améliorée du protocole PROXY
Cette version améliore notre prise en charge du protocole PROXY pour les connexions TCP en permettant à NGINX Plus d’accepter les connexions TCP enrichies à l’aide du protocole PROXY.
Cette fonctionnalité vous permet de mieux gérer les connexions TCP avec NGINX Plus, car vous pouvez déterminer l’adresse IP source réelle de la connexion à des fins de journalisation ou d’authentification.
Métriques supplémentaires de statut étendu
Le module « Status » fournit désormais davantage de métriques dans la catégorie « stream », notamment le nombre de sessions traitées et le nombre d’occurrences de diverses conditions d’erreur.
Avec la nouvelle commande access_log du module Stream Log, les métriques supplémentaires facilitent la surveillance du comportement des services TCP et UDP ainsi que la détection d’un taux d’erreurs anormal.
[Note de la rédaction – Le module Status est obsolète et remplacé par le module NGINX Plus API, introduit dans NGINX Plus R13.
Module GeoIP2 pour une meilleure géolocalisation
Le module tiers GeoIP2 est désormais certifié et disponible dans notre dépôt pour les utilisateurs de NGINX Plus. Le module GeoIP2 utilise les bases de données au format GeoIP2 de MaxMind, qui fournissent des noms localisés et sont plus détaillées que celles utilisées par le module GeoIP d’origine.
Pour obtenir le nouveau module, exécutez les commandes suivantes (pour Debian et Ubuntu) :
$ apt-get update$ apt-get install nginx-plus-module-geoip2Dans le contexte principal (niveau supérieur) du fichier /etc/nginx/nginx.conf, ajoutez une directive load_module pour le module nouvellement installé :
Chargement de l’exemple de code…
Pour plus d’informations sur le module GeoIP2, consultez la page GitHub officielle.
Améliorations apportées au module JavaScript de NGINX
Note de la rédaction – Le cas d’utilisation suivant n’est qu’un exemple parmi tant d’autres pour le module JavaScript NGINX. Pour consulter la liste complète des cas d’utilisation, voir Cas d’utilisation du module JavaScript NGINX.
Cet article a été mis à jour afin d’utiliser l’objet de session (s) remanié pour le module Stream, introduit dans NGINX JavaScript 0.2.4.
NGINX JavaScript est le langage de configuration nouvelle génération pour NGINX et NGINX Plus. Avec NGINX JavaScript, vous pouvez utiliser la syntaxe JavaScript qui vous est familière pour effectuer des opérations plus complexes que celles permises par le langage de configuration NGINX standard. Cette version apporte plusieurs améliorations au module NGINX JavaScript.
NGINX JavaScript est encore en cours de développement, et les mises à jour de cette version préfigurent les fonctionnalités finales prévues. Pour cette étape, nous nous sommes concentrés sur deux domaines : l’intégration au module Stream et une prise en charge plus étendue du langage JavaScript.
Dans le module Stream, NGINX JavaScript peut accéder à plusieurs phases internes du traitement des requêtes afin d’inspecter et de modifier les données. Par exemple, le code NGINX JavaScript suivant montre comment inspecter le troisième message d’un flux du protocole MySQL et rechercher des motifs clés afin d’identifier l’opération SQL :
Chargement de l’exemple de code…
Le cœur de NGINX JavaScript prise en charge du langage a été considérablement enrichi et prend désormais en charge davantage d’objets et de fonctions intégrés. Les mises à jour sont publiées dans le dépôt de code source Mercurial ainsi que dans le dépôt de paquets NGINX Plus.
Amélioration des performances de mise en cache
NGINX Plus exécute un processus distinct de gestionnaire de cache chargé de purger le cache sur disque. Dans certaines circonstances, le gestionnaire de cache peut être amené à supprimer un grand nombre de fichiers, par exemple lorsqu’une grande quantité de mémoire doit être libérée.
Grâce à la nouvelle fonctionnalité de « limitation des suppressions », vous pouvez définir un débit maximal de suppression des fichiers mis en cache. Un débit plus faible peut réduire la charge sur le disque sous-jacent et ainsi 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 ».
Mettez à niveau ou essayez NGINX Plus
Si vous utilisez NGINX Plus, nous vous recommandons de passer à la version 11 dès que possible. Vous bénéficierez ainsi de plusieurs correctifs et améliorations, et cela nous permettra de mieux vous aider si vous devez ouvrir un ticket d’assistance. Les instructions d’installation et de mise à niveau sont disponibles sur le portail client.
Remarque : Comme cela a été annoncé précédemment, NGINX Plus R11 et les versions ultérieures n’incluent pas le paquet nginx-plus-extras. Si vous utilisez encore ce paquet, vous devez déployer à la place le paquet nginx-plus et charger dynamiquement les modules supplémentaires dont vous avez besoin depuis le dépôt de modules NGINX Plus.
Si vous n’avez pas encore essayé NGINX Plus, nous vous invitons à le tester pour l’accélération Web, l’équilibrage de charge et la mise à disposition d’applications, ou comme serveur Web entièrement pris en charge, doté d’API avancées de surveillance et de gestion. Vous pouvez commencer dès aujourd’hui avec un essai gratuit de 30 jours et constater par vous-même comment NGINX Plus peut vous aider à déployer vos applications et à les faire évoluer.
À propos de l’auteur

Articles de blog associés

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA
Découvrez les principaux enseignements tirés des réponses à l’enquête annuelle F5 NGINX sur les dernières tendances en matière de technologies cloud natives, de sécurité, d’ingénierie de plateforme et d’IA.
Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?
Lorsque de nouvelles CVE sont signalées, il est facile de ne plus savoir si elles concernent un outil de contrôleur Ingress NGINX particulier, car il existe plusieurs projets. Cet article présente les CVE et explique comment distinguer les différents projets de contrôleurs Ingress afin de dissiper toute confusion.
Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX
Votre API répond-elle aux requêtes en moins de 30 ms ? Si ce n’est pas le cas, il ne s’agit pas d’une API en temps réel offrant la faible latence exigée par la grande majorité des organisations. Mesurez la latence de votre API avec l’outil rtapi de NGINX et découvrez comment NGINX peut l’aider à offrir une réactivité en temps réel.

Un testeur d’expressions régulières pour NGINX et NGINX Plus
Le testeur d’expressions régulières (regex) pour NGINX et NGINX Plus vous évite de tâtonner en vous indiquant si une expression régulière utilisée dans un bloc location ou map correspond aux valeurs comme prévu. Il génère la configuration appropriée et affiche les valeurs des groupes de capture.
Caches partagés avec les clusters de cache NGINX Plus, partie 1
Optimisez la capacité de votre cache web en le répartissant entre plusieurs serveurs de cache web NGINX ou NGINX Plus. Découvrez comment procéder dans cet article.
Introduction aux microservices
Les microservices suscitent actuellement beaucoup d’intérêt. Cet article de blog est le premier d’une série de sept consacrée à la conception, au développement et au déploiement de microservices.