La version principale de nginx 1.25.5 a été publiée, dans laquelle le développement de nouvelles fonctionnalités se poursuit. Dans la branche stable 1.24.x, uniquement les modifications liées à la correction de bogues graves et de vulnérabilités sont apportées. À l'avenir, une branche stable 1.26 sera formée sur la base de la branche principale 1.25.x. Le code du projet est écrit en langage C et distribué sous licence BSD.
Parmi les changements :
- Le module de flux a ajouté le support serveurs virtuels, dont la configuration est définie dans le bloc «server { … }» à l'aide de la directive server_name. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
- Un nouveau module, ngx_stream_pass_module, a été ajouté pour acheminer les connexions reçues directement vers n'importe quel socket à l'écoute, lié à des modules tels que http, stream et mail. stream { server { listen 12345 ssl; ssl_certificate domain.crt; ssl_certificate_key domain.key; pass 127.0.0.1:8000; } }
- Dans la directive listen du module stream, le support des paramètres «deferred» (active le accept différé), «accept_filter» (filtre des connexions entrantes appliqué avant l'appel de la fonction accept) et «setfib» (définition de la table de routage) a été implémenté.
- Pour certaines architectures, la prise en charge de la définition de la taille du bloc (cache line) utilisée pour le transfert de données entre le cache du CPU et la mémoire a été mise en œuvre.
- La prise en charge du gestionnaire de paquets Homebrew a été ajoutée sur les systèmes Apple Silicon.
- Des problèmes de compilation croisée pour Windows ont été résolus.
- Un bogue causant la fermeture des connexions lors de l'utilisation du mode 0-RTT dans le protocole QUIC a été corrigé.
On peut également noter la publication de la version stable du projet FreeNginx 1.26.0, un fork d'Nginx. Le développement de ce fork est dirigé par Maxim Dounine, l'un des développeurs clés d'Nginx. FreeNginx est positionné comme un projet non commercial, garantissant le développement de la base de code d'Nginx sans ingérence d'entreprise. La version 1.26.0 est marquée comme une version stable, intégrant des modifications et des corrections provenant des versions en ligne d'Nginx 1.25. Parmi les nouveautés, FreeNginx 1.26.0 comprend un support expérimental du protocole HTTP/3, des améliorations contre les attaques par déni de service (DoS) et des corrections relatives au traitement asynchrone des entrées/sorties.
En parallèle, la version njs 0.8.4, interpréteur du langage JavaScript pour serveur web nginx, a été publiée. L'interpréteur njs met en œuvre les normes ECMAScript et permet d'étendre les capacités d'nginx en matière de traitement des requêtes via des scripts dans la configuration. Les scripts peuvent être utilisés dans le fichier de configuration pour définir une logique de traitement des requêtes avancée, générer dynamiquement une réponse, modifier la requête/réponse ou créer rapidement des maquettes pour résoudre des problèmes dans les applications web. Dans la nouvelle version : la prise en charge du moteur JavaScript QuickJS a été ajoutée dans le CLI ; la possibilité de définir l'en-tête Server a été ajoutée ; une vérification des variables en double définies via js_set a été mise en œuvre.
Source : opennet.ru
