NGINX, Inc. est fier d'annoncer la disponibilité de NGINX Plus Release 7 (R7), la dernière version de notre plateforme de diffusion d'applications. La mise à jour fournit une implémentation entièrement prise en charge de la nouvelle norme Web HTTP/2, la première du genre pour un serveur Web de premier plan. NGINX Plus peut être déployé en tant que passerelle HTTP/2 frontale et accélérateur pour les services Web nouveaux et existants.
[Éditeur – Ce message a été mis à jour pour faire référence à l’ API NGINX Plus , qui remplace et désapprouve le module d’état distinct mentionné dans la version originale du message.]
La dernière mise à jour ajoute également des améliorations spectaculaires et des fonctionnalités supplémentaires pour garantir que les organisations peuvent fournir leurs applications avec les performances, la sécurité et la fiabilité requises pour les applications d'entreprise. Il s’agit notamment d’améliorations significatives visant à faciliter la surveillance, la gestion et le débogage des applications, ainsi que de fonctionnalités supplémentaires d’optimisation de la sécurité et des performances.
Éditeur – Pour plus de détails sur les nouvelles fonctionnalités clés de NGINX Plus R7 , consultez ces articles de blog associés :
Consultez également notre webinaire à la demande, Quoi de neuf dans NGINX Plus R7 ?
Les principales fonctionnalités de cette version incluent :
Note : Sur la base des tests utilisateurs du correctif de niveau alpha et avec le soutien précoce des co-sponsors d'entreprise Automattic et Dropbox, la version open source finale de HTTP/2 sera disponible après la sortie de R7.
SO_REUSEPORT
et nécessite actuellement Linux 3.9+ ou DragonFly BSD.« Nous avons aidé des centaines de nouveaux clients à déployer leurs applications avec NGINX Plus au cours de l'année écoulée, et notre dernière version vise réellement à leur fournir encore plus d'outils pour garantir la meilleure expérience possible à leurs utilisateurs », déclare Gus Robertson, PDG de NGINX, Inc. « Nous sommes la structure de l’infrastructure de nos clients, ce qui nous place dans une position unique pour pouvoir fournir une visibilité et un contrôle inégalés sur les applications qu’ils déploient. Nous prenons au sérieux notre rôle essentiel dans les activités de nos clients, et les nouvelles fonctionnalités de NGINX Plus R7 en témoignent.
L’adoption de NGINX a considérablement augmenté ces derniers mois. NGINX est le serveur Web n°1 parmi les 100 000 premiers sites Web , avec près de la moitié des sites les plus fréquentés au monde utilisant NGINX pour fournir leurs applications à des milliards d'utilisateurs. NGINX, Inc. continue d'investir massivement dans nos outils open source et commerciaux pour faciliter la diffusion d'applications sans faille pour tous, des applications les plus petites et les plus légères jusqu'aux plus grandes plateformes du monde.
Fonctionnalités détaillées de NGINX Plus R7
Cette section fournit un aperçu détaillé de toutes les nouvelles fonctionnalités de NGINX Plus R7 .
NGINX Plus R7 offre un support pour HTTP/2, la dernière version du protocole HTTP, via le nouveau package nginx-plus-http2 . HTTP/2 apporte des performances et une sécurité accrues aux applications Web modernes. La prise en charge de NGINX Plus pour HTTP/2 fonctionne de manière transparente avec vos sites et applications existants, sans nécessiter de modifications et avec seulement des modifications très minimes de la configuration de NGINX Plus. NGINX Plus R7 est entièrement rétrocompatible et peut fournir du trafic HTTP/1.x et HTTP/2 en parallèle, pour une expérience optimale quel que soit le navigateur choisi par vos utilisateurs.
Pour faciliter la transition vers HTTP/2, NGINX Plus agit comme une « passerelle HTTP/2 ». En front-end, NGINX Plus communique en HTTP/2 avec les navigateurs Web clients qui le prennent en charge, et en back-end, il communique en HTTP/1.x (ou FastCGI, SCGI, uWSGI, etc.) comme auparavant. Cela signifie que les serveurs et les applications proxy NGINX Plus ne seront pas affectés par le passage à HTTP/2 et n’auront même pas vraiment besoin de savoir quelle version HTTP leurs clients utilisent.
Pour prendre en charge HTTPS et HTTP/2 côte à côte, NGINX Plus prend en charge les extensions Next Protocol Negotiation (NPN) et Application‑Layer Protocol Negotiation (ALPN) dans TLS. Ces extensions sont utilisées pour mettre à niveau de manière transparente une connexion HTTPS vers HTTP/2 si le client et le serveur prennent en charge HTTP/2.
Le seul changement de configuration requis est d'ajouter le paramètre http2
aux directives d'écoute
existantes. Veuillez noter que HTTP/2 n'est pris en charge que lorsque le paramètre SSL
est également inclus :
serveur { écouter 443 ssl http2 default_server; }
Pour activer la prise en charge HTTP/2, installez le package nginx-plus-http2 à partir du référentiel NGINX Plus. Ce package ne prend pas en charge SPDY/3.1. Les packages standard nginx-plus et nginx-plus-extras prennent en charge SPDY/3.1 plutôt que HTTP/2 et sont actuellement recommandés pour les sites de production en raison d'une prise en charge plus large des navigateurs et de la maturité du code. Notez que nous ne construisons actuellement pas de version compatible HTTP/2 du package nginx-plus-extras .
Pour en savoir plus sur HTTP/2 :
NGINX Plus R7 inclut un certain nombre d’améliorations des performances qui peuvent aider vos applications à fonctionner encore mieux. Il ajoute la prise en charge de l’optimisation du pool de threads , qui décharge les opérations de disque potentiellement bloquantes et améliore les performances des charges de travail (telles que la mise en cache de contenu) qui impliquent des E/S de disque importantes. NGINX Plus R7 inclut également l' optimisation du partitionnement des sockets (Linux 3.9+ ou Dragonfly BSD requis) qui améliore l'efficacité sur les grands serveurs multicœurs où un grand nombre de processus nginx gèrent le trafic. Ils ont été testés sur le terrain dans les déploiements NGINX Open Source et sont désormais entièrement pris en charge dans le cadre de NGINX Plus.
L'utilisation de pools de threads dans NGINX Plus peut vous offrir des performances 9 fois meilleures. Il est bien connu que NGINX utilise une approche asynchrone et pilotée par événements pour gérer les connexions . Mais l’approche asynchrone et pilotée par les événements présente toujours un problème : le blocage. Sous Linux, les opérations de disque sont bloquantes. Ainsi, lors d'opérations impliquant de nombreuses E/S de disque, NGINX peut passer beaucoup de temps à bloquer plutôt qu'à effectuer un travail productif.
L’allocation d’un pool de threads qui gèrent les E/S de disque atténue ce problème. Au lieu d'aller sur le disque lui-même, le processus de travail NGINX transmet l'opération d'E/S à un thread disponible dans le pool, puis revient au traitement du trafic comme d'habitude. Une fois l’opération sur le disque terminée, le processus de travail NGINX est notifié et peut continuer le travail restant à effectuer pour satisfaire la demande.
Pour activer les pools de threads, ajoutez simplement la directive aio
threads
à un bloc d'emplacement
:
emplacement / {racine/stockage; threads aio ; }
Pour un aperçu complet des pools de threads dans NGINX, veuillez consulter cet article de blog .
Le sharding de socket a été introduit pour la première fois dans NGINX 1.9.1. Cette fonctionnalité exploite l'option de socket SO_REUSEPORT
introduite dans la version 3.9 du noyau Linux. Lorsque l’option est activée, le noyau Linux lui-même distribue les nouvelles connexions de manière uniforme entre les processus de travail NGINX de manière circulaire. Les processus de travail effectuent ensuite le travail de limitation des demandes, de mise en cache, d'équilibrage de charge et de tout ce que vous avez configuré.
Sans SO_REUSEPORT
, de nouvelles connexions sont mises à disposition de tous les processus de travail disponibles. Le premier à retirer une connexion de la file d'attente l'obtient. Comme il n’existe aucun algorithme permettant de répartir la charge de manière uniforme, celle-ci peut facilement être faussée, avec quelques processus de travail prenant la majorité de la charge tandis que d’autres sont sous-utilisés. Il est également inefficace de laisser les processus se battre pour des paquets, car cela peut conduire à des conflits de verrouillage.
Le partitionnement des sockets peut améliorer les performances jusqu'à 3 fois en garantissant que le travail est réparti uniformément entre les processus de travail NGINX. Pour activer cette fonctionnalité, ajoutez le nouveau paramètre reuseport
aux directives d'écoute
existantes.
serveur {écouter 12345 réutilisation ; # ... }
Pour en savoir plus sur cette fonctionnalité, veuillez consulter cet article de blog .
Note : Cette fonctionnalité nécessite le noyau Linux version 3.9 ou ultérieure. Ubuntu 13.10 et versions ultérieures et Red Hat Enterprise Linux 7 et versions ultérieures incluent les fonctionnalités requises.
NGINX Plus R7 ajoute encore plus de fonctionnalités pour améliorer la sécurité de vos applications. Cette section fournit un aperçu de ces fonctionnalités.
Les nouvelles fonctionnalités du proxy TCP et de l'équilibrage de charge améliorent le contrôle d'accès (limitation par adresse IP), la limitation de connexion (limitation du nombre de connexions simultanées par client ou service) et l'utilisation de la bande passante (limitation de la bande passante en amont ou en aval par connexion). Ces fonctionnalités sont déjà disponibles pour l’équilibrage de charge HTTP et sont utilisées avec grand succès pour le comptage des API et la protection DDoS.
Pour plus de détails, veuillez consulter l'article de blog associé, TCP Load Balancing in NGINX Plus R7<.htmlspan> .
En réponse à la demande populaire, NGINX Plus R7 peut proxy et équilibrer la charge des applications qui utilisent Microsoft NT LAN Manager ( NTLM ) pour l'authentification. NTLM est un protocole d’authentification utilisé par de nombreux produits Microsoft, en particulier avec les applications héritées.
Notre prise en charge de NTLM répond à l’exigence de sécurité selon laquelle les connexions aux serveurs back-end sont maintenues actives mais non multiplexées, de sorte que chaque client authentifié NTLM dispose d’une connexion dédiée unique au serveur back-end.
Pour activer la prise en charge NTLM, ajoutez la directive ntlm
dans la configuration des groupes HTTP en amont :
backend en amont { serveur 192.168.1.10 ; serveur 192.168.1.11 ; ntlm ; }
Vous pouvez désormais déployer en toute confiance NGINX en tant que proxy, équilibreur de charge et accélérateur HTTP/2 devant les applications Microsoft, prenant en charge la gamme la plus large possible d'appareils clients.
NGINX Plus fournit une surveillance et des statistiques détaillées pour faciliter l'observation, l'optimisation et le débogage des applications et de l'infrastructure. S'appuyant sur cette capacité, NGINX Plus R7 est livré avec de nouveaux compteurs et statistiques. Ces compteurs vous aident à optimiser vos déploiements NGINX Plus et à prendre des décisions éclairées sur le moment où vous pourriez avoir besoin d'augmenter ou de diminuer votre capacité pour gérer davantage de charge. Les nouvelles statistiques et compteurs sont :
499
erreurs – Compteur par serveur qui suit499
des erreurs qui se produisent lorsque le client ferme la connexion avant que le serveur principal ait terminé de traiter sa demande. Quelques499
les erreurs sont acceptables (les gens ferment souvent leur navigateur Web au milieu d'une session), mais un grand nombre peut indiquer que le serveur est surchargé et prend beaucoup de temps à traiter les demandes.Comme tous les autres compteurs, vous activez les nouveaux compteurs en incluant la directive api
dans la configuration.
Le tableau de bord NGINX Plus a été grandement amélioré dans R7, affichant les informations clés du système dans un format concis, même pour les configurations volumineuses et complexes :
Pour en savoir plus, consultez l'article de blog associé, Le nouveau tableau de bord NGINX Plus<.htmla>.
NGINX Plus R7 dispose d'un certain nombre d'améliorations supplémentaires qui n'entrent dans aucune des catégories ci-dessus :
start
, end
et offset
sur les URI HLS .m3u8 . Cela permet aux éditeurs de contenu de publier facilement des liens vers des fragments d'un flux vidéo.Modification du contenu – Auparavant, NGINX Plus pouvait simplement apporter une modification simple au contenu d’une réponse, en remplaçant une chaîne par une autre. La directive sub_filter
a été étendue pour prendre en charge les variables et les chaînes de substitutions, rendant ainsi possibles des modifications plus complexes.
Les capacités étendues de modification de contenu facilitent l’adaptation du contenu Web, par exemple en modifiant la méthode ( https:// au lieu de http:// ), le domaine ou d’autres éléments de chemin dans les hyperliens dans le contenu du message. Vous pouvez également l'utiliser pour insérer du contenu dans des pages HTML, comme du texte standard ou des extraits JavaScript, sans avoir à modifier le contenu HTML d'origine.
$upstream_connect_time
– Une nouvelle variable NGINX qui suit le temps nécessaire pour se connecter à un serveur backend, ce qui facilite l’identification des serveurs lents.‑T
de la commande nginx
vide la configuration NGINX analysée sur stdout dans un format clair et standardisé. Ceci est utile à des fins d'archivage ou lors du dépôt d'un ticket d'assistance.proxy_bind
, proxy_protocol
et tcp_nodelay
, ainsi que le paramètre backlog
de la directive listen
, sont désormais pris en charge pour le trafic TCP (module stream ) ainsi que pour le trafic HTTP. Pour plus de détails, veuillez consulter Équilibrage de charge TCP dans NGINX Plus R7<.htmlspan> .Si vous utilisez Phusion Passenger Open Source avec NGINX Plus (la directive passenger_root
est incluse dans votre configuration), vous devez mettre à niveau votre runtime Passenger vers la version 5.0.15 en même temps que vous effectuez la mise à niveau vers le package nginx-plus-extras NGINX Plus R7 . Effectuez ces étapes (les commandes sont adaptées à Ubuntu) :
Arrêter NGINX Plus :
# service nginx stop
Mettez à niveau votre environnement d'exécution Phusion Passenger vers la version 5.0.15 :
# apt-get install passager
Mettez à niveau le package NGINX Plus Extras vers R7 :
# apt-get installe nginx-plus-extras
Effectuez les mises à jour requises des directives de configuration NGINX Plus comme décrit dans les notes de mise à niveau de Phusion Passenger.
Démarrer NGINX Plus :
# démarrage du service nginx
Les instructions complètes d'installation et de mise à niveau sont disponibles sur le portail client NGINX Plus.
Si vous utilisez NGINX Plus, nous vous encourageons vivement à effectuer la mise à niveau vers la version 7 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 commencer gratuitement dès aujourd’hui avec une évaluation de 30 jours et voir par vous-même comment NGINX Plus peut vous aider à développer et à livrer vos applications.
spdy
sur toutes les directives d'écoute
de votre configuration (remplacez-le par les paramètres http2
et ssl
pour activer la prise en charge de HTTP/2). Avec le package nginx-plus-http2 , NGINX Plus ne parvient pas à démarrer si l'une des directives d'écoute
possède le paramètre spdy
.« 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."