Nous sommes fiers d’annoncer la disponibilité de NGINX Plus Release 8 (R8), la dernière version de notre plateforme de mise à disposition d’applications. Cette version comprend une implémentation de HTTP/2 renforcée et entièrement prête pour la production, une API persistante de reconfiguration dynamique, le nouveau module « Slice » pour la mise en cache évolutive de fichiers vidéo volumineux, ainsi que de nombreuses autres fonctionnalités garantissant une mise à disposition irréprochable des applications.
Note de l’éditeur – NGINX Plus R8 a également introduit l’aperçu technologique d’OAuth. Pour plus d’informations à ce sujet, voir ci-dessous.
Pour en savoir plus sur les principales nouveautés de NGINX Plus R8, consultez les ressources connexes suivantes.
- Webinaires à la demande :
- Article de blog : Mise en cache intelligente et efficace des plages d’octets avec NGINX et NGINX Plus
Les principales nouveautés de NGINX Plus R8 sont les suivantes :
- Implémentation de HTTP/2 entièrement prête pour la production – Dans NGINX Plus R7, nous avons introduit la prise en charge de HTTP/2 moins de sept mois après la ratification du protocole. NGINX est désormais le serveur web n° 1 pour HTTP/2. Nos efforts de développement ne se sont pas arrêtés à cette version, et nous avons continué à travailler sans relâche pour améliorer notre implémentation. Avec NGINX Plus R8, nous sommes fiers de proposer une implémentation de la norme HTTP/2 entièrement prise en charge, prête pour la production et renforcée. HTTP/2 améliore les performances des sites web de jusqu’à 30 %. Avec NGINX Plus R8, vous pouvez continuer à ajouter la prise en charge de HTTP/2 à vos sites nouveaux et existants, sans qu’aucune modification de votre application soit nécessaire.
- API de reconfiguration dynamique persistante – Grâce à l’API de reconfiguration dynamique de NGINX Plus, vous pouvez ajouter ou supprimer des serveurs en amont sans redémarrer NGINX Plus, ni modifier et recharger manuellement le fichier de configuration. Cette fonctionnalité est particulièrement utile pour la mise à l’échelle automatique et la découverte de services, car elle permet de modifier à la demande le pool d’équilibrage de charge. À partir de NGINX Plus R8, les modifications effectuées via l’API peuvent être conservées après un redémarrage ou un rechargement de la configuration. Grâce à cette mise à jour de l’API, vous pouvez apporter des modifications permanentes à votre configuration d’équilibrage de charge NGINX Plus, notamment ajouter ou supprimer des serveurs et modifier leurs priorités d’équilibrage de charge. Cette API étant facile à sécuriser, vous pouvez effectuer des modifications aussi souvent que nécessaire.
- Mise en cache évolutive des fichiers vidéo volumineux – Avec NGINX Plus R8, nous avons amélioré notre cache de contenu évolutif afin de mieux prendre en charge les fichiers vidéo volumineux, tels que les vidéos HTML5. Au lieu de stocker l’intégralité du fichier vidéo dans une seule entrée de cache, NGINX Plus le découpe en fragments plus petits, puis met ces fragments en cache. Cette structuration du cache correspond mieux à la façon dont les utilisateurs regardent des vidéos sur Internet (avance rapide, arrêt avant la fin, etc.) et réduit à la fois la latence pour les utilisateurs et le trafic réseau en provenance et à destination des serveurs d’origine.
Fonctionnalités de NGINX Plus R8 en détail
Cette section présente en détail l’ensemble des nouvelles fonctionnalités de NGINX Plus R8.
Aperçu technologique d’OAuth
Note de la rédaction – Dans NGINX Plus R8, nous avons introduit l’aperçu technologique d’OAuth, une implémentation de l’authentification reposant sur la norme OAuth 2.0, dont les détails figuraient initialement ici. Dans NGINX Plus R10, nous avons remplacé l’aperçu technologique d’OAuth par la prise en charge native de la norme JSON Web Token (JWT).
Implémentation de HTTP/2 prête pour la production
HTTP/2 est la dernière version du protocole HTTP. Elle corrige de nombreux problèmes de la version initiale du protocole HTTP, ce qui améliore les performances globales et optimise l’utilisation des ressources.
L’utilisation de HTTP/2 n’a cessé d’augmenter depuis la ratification de la norme en février 2015. À l’heure où nous écrivons ces lignes, 6 % des sites web utilisent HTTP/2 et 69 % des internautes utilisent un navigateur compatible avec HTTP/2.
Avec NGINX Plus R8, vous bénéficiez de l’implémentation de HTTP/2 la plus éprouvée, la plus stable et la plus fiable disponible à ce jour. 71 % des sites web compatibles avec HTTP/2 reposent sur NGINX et NGINX Plus, et nous avons intégré au produit les retours de nos premiers utilisateurs. Notre implémentation de HTTP/2 bénéficie d’une prise en charge complète pour une utilisation en production et peut évoluer pour gérer les charges de travail les plus exigeantes.
NGINX Plus fait office de passerelle HTTP/2
NGINX Plus fait office de « passerelle HTTP/2 » afin de faciliter la transition vers le nouveau protocole. Côté frontend, NGINX Plus communique en HTTP/2 avec les navigateurs web clients qui le prennent en charge. Côté backend, NGINX Plus continue de communiquer en HTTP/1.x (ou via FastCGI, SCGI, uwsgi, etc.), comme auparavant. Entre les deux, NGINX Plus assure la conversion entre HTTP/2 et HTTP/1.x (ou FastCGI, etc.). Ainsi, les serveurs et applications auxquels NGINX Plus sert de proxy ne sont pas affectés par le passage à HTTP/2 et n’ont même pas vraiment besoin de savoir si leurs clients utilisent HTTP/2. Toutefois, les sites web et applications qui desservent des clients HTTP/2 doivent utiliser TLS/SSL, comme l’exigent tous les navigateurs web prenant en charge HTTP/2.
La seule modification à apporter à la configuration de NGINX Plus ou de NGINX consiste à ajouter le paramètre « http2 » aux directives « listen » :
listen 443 ssl http2 default_server;Pour en savoir plus sur HTTP/2 dans NGINX Plus et NGINX, consultez notre livre blanc et notre webinaire à la demande.
Reconfiguration dynamique persistante
NGINX Plus fournit une API basée sur HTTP permettant d’ajouter, de supprimer et de modifier dynamiquement des serveurs backend sans avoir à recharger la configuration. Cette fonctionnalité est particulièrement utile pour la découverte de services, la mise à l’échelle automatique et d’autres applications nécessitant l’ajout et la suppression de serveurs à la demande.
Avec NGINX Plus R8, les modifications effectuées à l’aide de cette API peuvent désormais être conservées après les redémarrages de NGINX Plus et les rechargements de la configuration. Ajoutez la nouvelle directive state dans un bloc upstream afin de spécifier le fichier dans lequel NGINX Plus stocke les informations d’état des serveurs du groupe en amont. Les modifications que vous effectuez à l’aide de l’API de reconfiguration dynamique sont enregistrées dans ce fichier. NGINX Plus lit le fichier au démarrage, ce qui permet de conserver vos modifications après les redémarrages.
upstream backend {
zone backend 64k;
state /var/lib/nginx/state/backend.state;
}La directive state indique le nom du fichier dans lequel NGINX Plus stocke les informations d’état des serveurs du groupe en amont. Lorsqu’elle est incluse dans la configuration, les serveurs ne peuvent pas être définis de manière statique à l’aide de la directive server.
L’utilisateur nginx doit disposer d’un accès en écriture au répertoire /var/lib/nginx/state/. Si ce répertoire n’existe pas encore, vous pouvez exécuter les commandes suivantes :
$ sudo mkdir -p /var/lib/nginx/state$ sudo chown nginx:nginx /var/lib/nginx/stateMise en cache évolutive pour les fichiers vidéo volumineux
La mise en cache est l’un des moyens les plus rapides d’accélérer la diffusion de contenu web. Non seulement elle rapproche le contenu de l’utilisateur final, réduisant ainsi la latence, mais elle diminue également le nombre de requêtes adressées au serveur d’origine en amont, ce qui réduit l’utilisation de la bande passante et augmente de fait la capacité. La vidéo, en particulier la vidéo HTML5, se prête particulièrement bien à la mise en cache, car son contenu est statique et tend à être très sollicité lors de sa publication initiale.
Avec la vidéo HTML5, le navigateur diffuse le contenu en pseudo-streaming en effectuant des requêtes HTTP portant sur des plages d’octets. Il demande, par exemple, la première minute de la vidéo, puis la deuxième, et ainsi de suite. Ce mode de diffusion facilite également la mise en œuvre des fonctions d’avance et de retour rapides, car le navigateur peut simplement ignorer les parties de la vidéo dont il n’a pas besoin et commencer la plage d’octets demandée à l’endroit où l’utilisateur a avancé ou reculé.
NGINX Plus R8 inclut le nouveau module « Slice », qui prend mieux en charge ce type d’interaction entre le navigateur et le serveur pour les fichiers vidéo mis en cache. Le module divise les fichiers en fragments plus petits, puis met ces fragments en cache. Cette structure du cache est mieux adaptée aux techniques modernes de streaming vidéo, telles que celles utilisées par la vidéo HTML5.
Pour activer le découpage du cache, incluez la directive « slice » :
proxy_cache_path /tmp/mycache keys_zone=mycache:10m;
location / {
proxy_cache mycache;
proxy_pass http://localhost:8000;
slice 1m;
proxy_cache_key $uri$is_args$args$slice_range;
proxy_set_header Range $slice_range;
proxy_http_version 1.1;
proxy_cache_valid 200 206 1h;
}Dans cet exemple de configuration, NGINX Plus divise les fichiers vidéo en fragments de 1 Mo. Vous devez également inclure les directives suivantes :
proxy_cache_keyavec la nouvelle variable$slice_rangedans la clé définie – Définit la clé de cache afin de différencier les fragments du fichier d’origine.proxy_set_header– Remplace l’en-têteRangede la requête HTTP par$slice_range. Si la plage d’octets demandée par le client ne correspond pas aux limites des fragments créés par NGINX Plus, NGINX Plus doit effectuer plusieurs sous-requêtes pour récupérer toutes les données correspondant à la plage d’octets demandée par le client.proxy_http_version– Met à niveau la requête vers HTTP/1.1, car HTTP/1.0 ne prend pas en charge les requêtes de plages d’octets.
Pour en savoir plus sur cette nouvelle fonctionnalité, consultez cet article de blog dédié.
Fonctionnalités supplémentaires
NGINX Plus R8 apporte également plusieurs améliorations supplémentaires pour vous aider à assurer une diffusion irréprochable de vos applications, notamment :
- Contrôles d’intégrité plus flexibles pour les applications complexes. Par défaut, NGINX Plus envoie les messages de contrôle d’intégrité au port spécifié par la directive
serverdans le blocupstream. Avec NGINX Plus R8, vous pouvez désormais spécifier un autre port dans chaque bloclocation, ce qui est particulièrement utile pour surveiller l’état de nombreux services sur un même hôte. Ajoutez le nouveau paramètreportà la directivehealth_check:
location / { proxy_pass http://backend;
health_check port=8080;
}- Par défaut, NGINX Plus met désormais en cache les requêtes HTTP
HEAD(il les convertit en requêtesGETavant de les mettre en cache). Pour désactiver ce type de mise en cache, ajoutez la directiveproxy_cache_convert_headoff. Une requêteHEADest identique à une requêteGETstandard, à ceci près que le corps de la réponse n’est pas renvoyé. Les requêtesHEADpermettent de vérifier la validité et l’accessibilité des liens, ainsi que la date de leur dernière modification. - Une nouvelle variable, «
$realip_remote_addr», enregistre l’adresse IP d’origine du client lors de l’utilisation du module Real IP. - Le nouveau paramètre «
nohostname» des directives «access_log» et «error_log» désactive la journalisation du champ du nom d’hôte dans syslog ; le nom d’hôte est inutile lorsque les journaux sont envoyés à un serveur syslog local.
Les modules suivants du package NGINX Plus Extras ont été mis à jour :
- Le module Headers-More a été mis à jour vers la version 0.28
- Le module Lua a été mis à jour vers la version 0.9.20
- Le module « Phusion Passenger Open Source » a été mis à jour vers la version 5.0.22
- Le module Redis est mis à jour vers la version 0.21
Les paquets suivants ne sont plus disponibles :
- nginx-plus-http2 – La prise en charge de HTTP/2 est désormais intégrée aux paquets nginx-plus et nginx-plus-extras. NGINX Plus ne prend plus en charge SPDY.
- nginx-plus-lua – Pour la prise en charge de Lua, veuillez utiliser le paquet nginx-plus-extras.
Mettez à niveau ou essayez NGINX Plus
Si vous utilisez NGINX Plus, nous vous recommandons vivement de passer à la version 8 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.
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 gratuitement dès aujourd’hui avec une évaluation 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.