Nous sommes ravis d’annoncer la disponibilité de NGINX Plus Release 32 (R32). Basé sur NGINX Open Source, NGINX Plus est le seul serveur Web logiciel tout-en-un, équilibreur de charge, proxy inverse, cache de contenu et passerelle API.
Les fonctionnalités nouvelles et améliorées de NGINX Plus R32 incluent :
La version est complétée par de nouvelles fonctionnalités et des corrections de bugs héritées de NGINX Open source et des mises à jour du module JavaScript NGINX.
Note: Si vous effectuez une mise à niveau à partir d'une version autre que NGINX Plus R31, assurez-vous de consulter la section Modifications importantes du comportement dans les blogs d'annonces précédents pour toutes les versions entre votre version actuelle et celle-ci.
Le module OpenTracing, introduit dans NGINX Plus R18, est obsolète et marqué pour suppression dans NGINX Plus R34. Les packages associés seront mis à disposition avec toutes les versions de NGINX Plus d'ici là. Nous vous conseillons fortement de remplacer l'utilisation du module OpenTracing par le module OpenTelemetry , introduit dans NGINX Plus R29 .
Le module ModSecurity a atteint la fin du support le 31 mars 2024. Par conséquent, les packages modsec ont été supprimés du référentiel NGINX Plus et ne seront plus disponibles à partir du référentiel NGINX Plus à l'avenir.
Les packages NGINX Open Source et NGINX Plus sont signés à l'aide d'une clé PGP. Cette clé expirera le 16 juin 2024. Nous avons mis à jour la date d'expiration de la clé afin que les packages existants puissent continuer à être vérifiés après le 16 juin 2024. Nous allons générer de nouvelles paires de clés pour signer les packages des prochaines versions.
Tous les utilisateurs de NGINX doivent télécharger et installer la clé PGP mise à jour en suivant ces étapes :
Sur Ubuntu/Debian :
wget -qO - https://nginx.org/keys/nginx_signing.key | gpg --chermor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Sur RHEL/CentOS :
sudo rpm -e gpg-pubkey-7bd9bf62-5762b5f8
sudo rpm --import https://nginx.org/keys/nginx_signing.key
Vous ne pourrez pas vérifier vos signatures logicielles après le 16 juin 2024, jusqu'à ce que vous mettiez à jour votre clé.
Dans les futures versions de NGINX Plus, nous rationaliserons notre politique de packaging et de publication. NGINX Plus sera construit et testé uniquement sur les dernières versions des distributions de systèmes d'exploitation prises en charge. Si vous installez NGINX Plus sur des distributions plus anciennes, votre gestionnaire de paquets peut suggérer de mettre à jour les bibliothèques et les paquets dépendants.
Les modifications suivantes ont été apportées aux plateformes prises en charge dans cette version.
Nouveaux systèmes d’exploitation pris en charge :
Anciens systèmes d’exploitation supprimés :
Les anciens systèmes d'exploitation sont obsolètes et leur suppression est prévue dans NGINX Plus R33 :
Auparavant, NGINX chargeait un certificat, une clé ou une liste de révocation de certificats chaque fois qu’il était référencé dans la configuration NGINX. Cela signifiait que plusieurs références au même objet entraînaient un nombre égal de rechargements de cet objet. Cette latence serait aggravée lors de l’héritage de directives telles que des listes de certificats de confiance. Dans certaines conditions, ce comportement aurait un impact significatif sur le temps de démarrage de NGINX et pourrait nécessiter de grandes quantités de mémoire pour stocker les configurations.
Dans le cadre du nouveau comportement, les directives SSL font désormais référence aux fichiers de certificats mis en cache et aux objets associés. Par conséquent, les empreintes mémoire et les temps de chargement des configurations qui référencent de manière répétée les mêmes objets de certificat sont considérablement réduits. L’avantage est particulièrement évident dans les cas impliquant de grandes configurations NGINX où un petit ensemble de certificats de confiance est référencé sur un grand nombre de blocs d’emplacement.
Voici une visualisation de l’amélioration du temps de chargement lorsque NGINX est configuré avec environ 5 400 blocs d’emplacements (de niveau supérieur et imbriqués) et 878 certificats.
Notez la baisse significative des temps de chargement vers le côté droit du graphique, où le temps de chargement moyen diminue d'environ 40 secondes avant le changement à environ 6 secondes sous le nouveau comportement.
NGINX Plus R32 hérite d'une fonctionnalité de NGINX open source 1.25.5 qui ajoute une nouvelle couche de configurabilité à NGINX. Plus précisément, le module de flux NGINX peut désormais fonctionner comme un routeur, servant de proxy avec la possibilité de transmettre des connexions du contexte de flux à d'autres contextes comme http, mail ou à un serveur virtuel distinct dans le contexte de flux lui-même.
Cette fonctionnalité est disponible dans le cadre du module ngx_stream_pass_module , introduit dans cette version. Le module dispose d'une seule directive « pass » qui peut être utilisée pour spécifier l'adresse à laquelle transmettre les connexions client. L'adresse peut être spécifiée par une combinaison d'adresse IP et de port, un chemin de socket ou référencée par des variables NGINX.
Grâce à cette fonctionnalité, les clients qui souhaitent exécuter tout leur trafic via un seul point de terminaison L4 peuvent désormais terminer les connexions SSL au niveau du contexte de flux L4 et les transmettre à d'autres modules (http, mail) ou à d'autres serveurs virtuels dans le contexte de flux. De plus, les connexions SSL peuvent être interrompues de manière conditionnelle en fonction des noms de serveur ou des protocoles, tout en acheminant le trafic restant ailleurs. Cela ouvre un nouvel ensemble de comportements de configuration possibles pour la gestion du trafic à partir d'un seul point de terminaison.
L'extrait de configuration suivant met fin aux connexions SSL dans le module de flux et les transmet de manière conditionnelle au contexte http ou à un autre serveur virtuel dans le contexte de flux, en fonction du nom de serveur demandé.
http {
serveur {
écoute 8000 ;
emplacement / {
retour 200 foo ;
}
}
}
flux {
map $ssl_server_name $pass_port {
foo.example.com 8000 ;
par défaut 9001 ;
}
serveur {
écoute 9000 ssl ;
certificat_ssl domaine.crt ;
clé_certificat_ssl domaine.key ;
passe 127.0.0.1 : $pass_port ;
}
serveur{
écoute 9001 ;
retour bar\n ;
}
}
Dans cet exemple, toutes les connexions SSL se terminent au niveau du bloc serveur de flux. Selon le nom du serveur dans la requête entrante, les connexions sont transmises soit au serveur http écoutant sur le port 8000, soit au serveur virtuel de flux écoutant sur le port 9001.
Une autre application du module s'adresse aux cas d'utilisation où un module tiers ne prend pas en charge la terminaison SSL. Dans de tels scénarios, le module stream_pass peut mettre fin aux connexions chiffrées TLS avant de les transmettre au module tiers.
Cet exemple montre comment le module RTMP , qui ne prend pas en charge SSL de manière native, peut utiliser le module stream_pass pour accepter le trafic chiffré TLS.
rtmp {
serveur {
écoute 1935 ;#rtmp
application foo{
en direct ;
}
}
}
flux {
serveur {
écoute 1936 ssl ; #rtmps
certificat_ssl domaine.crt ;
clé_certificat_ssl domaine.key ;
passage 127.0.0.1 :1935 ;
}
}
Dans cet extrait de configuration, la connexion SSL est terminée dans le bloc du serveur de flux et transmise au rtmp. La connexion apparaît non chiffrée pour le module RTMP, ce qui élimine le besoin de personnalisation supplémentaire ou de surcharge de traitement pour prendre en charge les connexions SSL.
NGINX Plus R32 inclut la disponibilité officielle des images de conteneurs NGINX Plus pour l'exécution privilégiée et non privilégiée de NGINX Plus. Les deux types de conteneurs sont également disponibles avec des installations facultatives de NGINX Agent pour une connectivité facile aux plans de gestion pris en charge par NGINX. Les images peuvent être téléchargées à partir du registre NGINX, disponible à l'adresse : private-registry.nginx.com. Suivez ces instructions pour accéder à l'image avec votre certificat NGINX Plus et votre clé ou jeton Web JSON (JWT).
Les problèmes de sécurité potentiels suivants ont été identifiés et corrigés dans l’implémentation expérimentale HTTP3/QUIC.
NGINX Plus R32 est basé sur NGINX Open Source 1.25.5 et hérite des modifications fonctionnelles, des fonctionnalités et des corrections de bogues apportées depuis la sortie de NGINX Plus R31 (dans NGINX 1.25.4 et 1.25.5).
Pour la liste complète des nouveaux changements, fonctionnalités, corrections de bogues et solutions de contournement hérités des versions récentes, consultez le fichier des modifications NGINX.
NGINX Plus R32 intègre les modifications du module NGINX JavaScript (njs) version 0.8.4. Voici une liste des changements notables dans njs depuis la version 0.8.2 (qui était la version livrée avec NGINX Plus R31).
Pour une liste complète de toutes les fonctionnalités, modifications et corrections de bogues, consultez le journal des modifications njs.
Si vous utilisez NGINX Plus, nous vous encourageons vivement à effectuer une mise à niveau vers NGINX Plus R32 dès que possible. En plus de toutes ces nouvelles fonctionnalités, vous bénéficierez également de plusieurs correctifs et améliorations supplémentaires, ce qui permettra à NGINX de vous aider plus facilement si vous devez ouvrir un ticket d'assistance.
Si vous n'êtes pas un utilisateur de NGINX Plus, nous vous encourageons à l'essayer. Vous pouvez l'utiliser pour la sécurité, l'équilibrage de charge et les cas d'utilisation de passerelle API, ou comme serveur Web entièrement pris en charge avec des API de surveillance et de gestion améliorées. Commencez dès aujourd'hui avec un essai gratuit de 30 jours .
« 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."