BLOG | NGINX

Annonce de NGINX Plus R8

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

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.

 

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.

  • Mise en cache évolutive pour les fichiers vidéo volumineux – Avec NGINX Plus R8, nous avons amélioré notre cache de contenu évolutif pour mieux gérer les fichiers vidéo volumineux, tels que les vidéos HTML5. Plutôt que de stocker l'intégralité du fichier vidéo sous la forme d'une seule entrée de cache, NGINX Plus le découpe en fragments plus petits, puis met en cache ces fragments. Structurer le cache de cette manière permet de mieux s'adapter à la manière dont les utilisateurs consomment la vidéo sur Internet (avance rapide, fin anticipée, etc.) et réduit la latence de l'utilisateur ainsi que le trafic réseau vers et depuis les serveurs d'origine.

Caractéristiques détaillées de NGINX Plus R8

Cette section fournit un aperçu détaillé de toutes les nouvelles fonctionnalités de NGINX Plus R8 .

Aperçu de la technologie OAuth

É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) .

Implémentation HTTP/2 prête pour la production

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

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 .

Reconfiguration dynamique persistante

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

Mise 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 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é .

Fonctionnalités supplémentaires

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.

  • Une nouvelle variable, $realip_remote_addr , capture l'adresse IP du client d'origine 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 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 :

  • Le module Headers-More est mis à jour vers la version 0.28
  • Le module Lua est mis à jour vers la version 0.9.20
  • Le module Open Source Phusion Passenger est mis à jour vers la version 5.0.22
  • Le module Redis est mis à jour vers la version 0.21

Les packages suivants ne sont plus disponibles :

  • nginx-plus-http2 – La prise en charge HTTP/2 est désormais intégrée aux packages 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 package nginx-plus-extras .

Mettre à niveau ou essayer NGINX Plus

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."