Nous sommes fiers d'annoncer la disponibilité de NGINX Plus Release 8 (R8) , la dernière version de notre plateforme de diffusion d'applications. Cette version inclut une implémentation entièrement prête pour la production et renforcée de HTTP/2, une API de reconfiguration dynamique persistante, le nouveau module Slice pour la mise en cache évolutive de fichiers vidéo volumineux et de nombreuses autres fonctionnalités pour garantir une distribution d'applications sans faille.
Éditeur – NGINX Plus R8 a également introduit l’aperçu de la technologie OAuth. Pour plus d'informations à ce sujet, voir ci-dessous .
Pour plus de détails sur les nouvelles fonctionnalités clés de NGINX Plus R8, consultez ces ressources associées.
Webinaires à la demande :
Les principales nouvelles fonctionnalités de NGINX Plus R8 sont :
Implémentation 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 avec cette version, et nous avons continué à travailler dur pour améliorer notre implémentation. Avec NGINX Plus R8 , nous sommes fiers de fournir une implémentation entièrement prise en charge, prête pour la production et renforcée de la norme HTTP/2.
HTTP/2 améliore les performances des sites Web jusqu'à 30 % . Avec NGINX Plus R8, vous pouvez continuer à ajouter la prise en charge HTTP/2 à vos sites nouveaux et existants, sans qu'aucune modification ne soit requise pour votre application.
API de reconfiguration dynamique persistante – Avec 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. Il s’agit d’une excellente fonctionnalité pour la mise à l’échelle automatique et la découverte de services, vous permettant de modifier le pool d’équilibrage de charge à la demande. À partir de NGINX Plus R8 , les modifications que vous apportez à l’API peuvent persister après un redémarrage ou un rechargement de la configuration.
Avec cette mise à jour de l'API, vous pouvez apporter des modifications permanentes à votre configuration d'équilibrage de charge NGINX Plus, en ajoutant et en supprimant des serveurs et en modifiant leurs priorités d'équilibrage de charge. Grâce à cette API facilement sécurisée, des modifications peuvent être apportées aussi fréquemment que nécessaire.
Cette section fournit un aperçu détaillé de toutes les nouvelles fonctionnalités de NGINX Plus R8 .
Éditeur – Dans NGINX Plus R8, nous avons introduit l’aperçu de la technologie OAuth, une implémentation de l’authentification utilisant la norme OAuth 2.0, et les détails sont apparus à l’origine ici. Dans NGINX Plus R10, nous avons remplacé l'aperçu de la technologie OAuth par la prise en charge native de la norme JSON Web Token (JWT) .
HTTP/2 est la dernière version du protocole HTTP. Il corrige de nombreux problèmes de la version originale du protocole HTTP, ce qui conduit à de meilleures performances globales et à une utilisation plus efficace des ressources.
L’utilisation de HTTP/2 n’a cessé d’augmenter depuis la ratification de la norme en février 2015. Au moment de la rédaction de cet article, 6 % de tous les sites Web utilisent HTTP/2 et 69 % des utilisateurs d’Internet utilisent un navigateur prenant en charge HTTP/2.
Avec NGINX Plus R8 , vous obtenez l’implémentation HTTP/2 la plus testée, la plus stable et la plus fiable disponible aujourd’hui. 71 % des sites Web compatibles HTTP/2 sont optimisés par NGINX et NGINX Plus, et nous avons intégré les commentaires de nos premiers utilisateurs dans le produit. Notre implémentation HTTP/2 est entièrement prise en charge pour une utilisation en production et peut évoluer pour gérer les charges de travail les plus difficiles.
NGINX Plus agit comme une « passerelle HTTP/2 » pour faciliter la transition vers le nouveau protocole. Au niveau du front-end, NGINX Plus communique via HTTP/2 avec les navigateurs Web clients qui le prennent en charge. En backend, NGINX Plus parle HTTP/1.x (ou FastCGI, SCGI, uwsgi, etc.), comme avant. Entre-temps, NGINX Plus traduit entre HTTP/2 et HTTP/1.x (ou FastCGI, etc.). Cela signifie que les serveurs et les applications proxy NGINX Plus 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. Les sites Web et les applications qui prennent en charge les clients HTTP/2 doivent utiliser TLS/SSL, comme l'exigent tous les navigateurs Web qui prennent en charge HTTP/2.
La seule modification de configuration NGINX Plus ou NGINX que vous devez effectuer est l'ajout du paramètre http2
aux directives d'écoute
:
écouter 443 ssl http2 default_server;
Pour plus de détails sur HTTP/2 dans NGINX Plus et NGINX, veuillez consulter notre livre blanc et notre webinaire à la demande .
NGINX Plus fournit une API basée sur HTTP pour ajouter, supprimer et modifier des serveurs back-end de manière dynamique et sans avoir à recharger la configuration. Il s’agit d’une fonctionnalité intéressante pour la découverte de services, la mise à l’échelle automatique et d’autres applications qui nécessitent l’ajout et la suppression de serveurs à la demande.
Avec NGINX Plus R8 , les modifications apportées à l’aide de cette API peuvent désormais être persistantes lors des redémarrages et des rechargements de configuration de NGINX Plus. Ajoutez la nouvelle directive d’état
dans un bloc en amont
pour nommer le fichier dans lequel NGINX Plus stocke les informations d’état des serveurs du groupe en amont. Les modifications que vous apportez avec l’API de reconfiguration dynamique sont enregistrées dans le fichier. NGINX Plus lit le fichier au démarrage, ce qui permet à vos modifications de persister après chaque redémarrage.
backend en amont { zone backend 64k; état /var/lib/nginx/state/backend.state; }
La directive d’état
nomme le fichier dans lequel NGINX Plus stocke les informations d’état des serveurs du groupe en amont. Lorsqu'il est inclus 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 avoir l'autorisation d'écriture sur le répertoire /var/lib/nginx/state/ . Si le répertoire n’existe pas déjà, vous pouvez exécuter ces commandes :
$ sudo mkdir -p /var/lib/nginx/state $ sudo chown nginx:nginx /var/lib/nginx/state
La mise en cache est l’un des moyens les plus rapides d’accélérer la diffusion de contenu Web. Non seulement la mise en cache rapproche le contenu de l'utilisateur final, réduisant ainsi la latence, mais elle réduit également le nombre de requêtes adressées au serveur d'origine en amont, diminuant ainsi l'utilisation de la bande passante et augmentant efficacement la capacité. La vidéo, en particulier la vidéo HTML5, est une cible de choix pour la mise en cache, car le contenu est statique et a tendance à être fortement demandé lors de sa première publication.
Avec la vidéo HTML5, le navigateur diffuse du contenu en pseudo-flux en effectuant des requêtes HTTP par plage d'octets. Il demande par exemple la première minute de vidéo, puis la deuxième minute, et ainsi de suite. La diffusion en continu de cette manière facilite également la mise en œuvre de la fonctionnalité d'avance rapide et de retour rapide, car le navigateur peut simplement ignorer les sections de vidéo dont il n'a pas besoin, en commençant plutôt la plage d'octets demandée au point où l'utilisateur a effectué une avance rapide ou un retour rapide.
NGINX Plus R8 inclut le nouveau module Slice pour mieux prendre en charge ce style d’interaction navigateur-serveur pour les fichiers vidéo mis en cache. Le module divise les fichiers en fragments plus petits, puis met en cache ces fragments. Structurer le cache de cette manière s'adapte mieux 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
:
chemin_cache_proxy /tmp/mycache clés_zone=mycache:10m; emplacement / { proxy_cache mycache; proxy_pass http://localhost:8000; tranche 1m ; clé_cache_proxy $uri$is_args$args $slice_range ; plage_en-tête_ensemble_proxy $slice_range ; version_http_proxy 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_key
avec la nouvelle variable $slice_range
dans la clé définie – Définit la clé de cache pour différencier les fragments du fichier d'origine.proxy_set_header
– Remplace l’en-tête Range
dans la requête HTTP par $slice_range
. Si la plage d'octets demandée par le client ne correspond pas aux limites entre les fragments créés par NGINX Plus, NGINX Plus doit effectuer plusieurs sous-requêtes pour obtenir toutes les données de la demande de plage d'octets du 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 plage d’octets.Pour plus de détails sur cette nouvelle fonctionnalité, veuillez consulter cet article de blog associé .
NGINX Plus R8 introduit également un certain nombre d'améliorations supplémentaires pour vous aider à fournir des applications sans faille, notamment :
Contrôles de santé plus flexibles pour les applications complexes. Par défaut, NGINX Plus envoie des messages de contrôle d’état au port spécifié par la directive serveur
dans le bloc en amont
. Avec NGINX Plus R8, vous pouvez désormais spécifier un port alternatif dans chaque bloc d'emplacement
, ce qui est particulièrement utile lors de la surveillance de l'état de nombreux services sur le même hôte.
Incluez le nouveau paramètre de port
dans la directive health_check
:
emplacement / { 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êtes GET
avant de les mettre en cache). Pour désactiver ce type de mise en cache, incluez la directive proxy_cache_convert_head
off
.
Une requête HEAD
est identique à une requête GET
standard, sauf que le corps de la réponse n'est pas renvoyé. TÊTE
les requêtes sont utiles pour tester la validité, l'accessibilité et les modifications récentes des liens.
$realip_remote_addr
, capture l'adresse IP du client d'origine lors de l'utilisation du module Real IP .nohostname
des directives access_log
et error_log
désactive la journalisation du champ hostname dans syslog ; le hostname est inutile lors de la connexion à un serveur syslog local.Les modules suivants du package NGINX Plus Extras ont été mis à jour :
Les packages suivants ne sont plus disponibles :
Si vous utilisez NGINX Plus, nous vous encourageons vivement à effectuer la mise à niveau vers la version 8 dès que possible. 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 .
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 démarrer gratuitement dès aujourd'hui avec une évaluation 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."