nginx version 1.16.0

Après un an de développement est présenté nouvelle branche stable de serveur HTTP hautes performances et de serveur proxy multiprotocole nginx 1.16.0, qui a absorbé les changements accumulés au sein de la branche principale 1.15.x. À l'avenir, tous les changements dans la branche stable 1.16 seront liés à l'élimination d'erreurs et de vulnérabilités graves. La branche principale de nginx 1.17 sera bientôt constituée, au sein de laquelle le développement de nouvelles fonctionnalités se poursuivra. Pour les utilisateurs ordinaires qui n'ont pas pour tâche d'assurer la compatibilité avec les modules tiers, recommandé utilisez la branche principale, sur la base de laquelle les versions du produit commercial Nginx Plus sont formées tous les trois mois.

Les améliorations les plus notables ajoutées lors du développement de la branche amont 1.15.x :

  • Ajout de la possibilité d'utiliser des variables dans les directives 'ssl_certificate' Et 'ssl_certificate_key', qui peut être utilisé pour charger dynamiquement des certificats ;
  • Ajout de la possibilité de charger des certificats SSL et des clés secrètes à partir de variables sans utiliser de fichiers intermédiaires ;
  • Dans le bloc "en amont» nouvelle directive mise en œuvre «aléatoire", à l'aide duquel vous pouvez organiser l'équilibrage de charge avec une sélection aléatoire d'un serveur pour transférer la connexion ;
  • Dans le module ngx_stream_ssl_preread variable implémentée $ssl_preread_protocol,
    qui spécifie la version la plus élevée du protocole SSL/TLS prise en charge par le client. La variable permet créer des configurations pour l'accès à l'aide de divers protocoles avec et sans SSL via un port réseau lors du proxy du trafic à l'aide des modules http et stream. Par exemple, pour organiser l'accès via SSH et HTTPS via un seul port, le port 443 peut être redirigé par défaut vers SSH, mais si la version SSL est définie, redirigé vers HTTPS.

  • Une nouvelle variable a été ajoutée au module amont "$upstream_bytes_sent", qui affiche le nombre d'octets transférés vers le serveur de groupe ;
  • Vers le module courant au cours d'une même session, la possibilité de traiter plusieurs datagrammes UDP entrants du client a été ajoutée ;
  • La directive "proxy_requests", spécifie le nombre de datagrammes reçus du client, après quoi la liaison entre le client et la session UDP existante est supprimée. Après avoir reçu le nombre spécifié de datagrammes, le prochain datagramme reçu du même client commence une nouvelle session ;
  • La directive Listen a désormais la capacité de spécifier des plages de ports ;
  • Directive ajoutée "ssl_early_data» pour activer le mode 0-RTT lors de l'utilisation de TLSv1.3, qui permet de sauvegarder les paramètres de connexion TLS précédemment négociés et de réduire le nombre de RTT à 2 lors de la reprise d'une connexion précédemment établie ;
  • De nouvelles directives ont été ajoutées pour configurer keepalive pour les connexions sortantes (activant ou désactivant l'option SO_KEEPALIVE pour les sockets) :

    • «proxy_socket_keepalive" - configure le comportement "TCP keepalive" pour les connexions sortantes vers le serveur proxy ;
    • «fastcgi_socket_keepalive" - configure le comportement "TCP keepalive" pour les connexions sortantes vers le serveur FastCGI ;
    • «grpc_socket_keepalive" - configure le comportement "TCP keepalive" pour les connexions sortantes vers le serveur gRPC ;
    • «memcached_socket_keepalive" - configure le comportement "TCP keepalive" pour les connexions sortantes vers le serveur memcached ;
    • «scgi_socket_keepalive" - configure le comportement "TCP keepalive" pour les connexions sortantes vers le serveur SCGI ;
    • «uwsgi_socket_keepalive" - configure le comportement "TCP keepalive" pour les connexions sortantes vers le serveur uwsgi.
  • Dans la directive "limite_req" ajout d'un nouveau paramètre « délai », qui définit une limite après laquelle les demandes redondantes sont retardées ;
  • De nouvelles directives « keepalive_timeout » et « keepalive_requests » ont été ajoutées au bloc « upstream » pour définir des limites pour Keepalive ;
  • La directive "ssl" est obsolète, remplacée par le paramètre "ssl" dans la directive "listen". Les certificats SSL manquants sont désormais détectés lors de l'étape de test de configuration lors de l'utilisation de la directive « listen » avec le paramètre « ssl » dans les paramètres ;
  • Lors de l'utilisation de la directive reset_timedout_connection, les connexions sont désormais fermées avec un code 444 à l'expiration du délai d'attente ;
  • Les erreurs SSL « requête http », « requête proxy https », « protocole non pris en charge » et « version trop basse » sont désormais affichées dans le log avec le niveau « info » au lieu de « critique » ;
  • Ajout de la prise en charge de la méthode d'interrogation sur les systèmes Windows lors de l'utilisation de Windows Vista et versions ultérieures ;
  • Possibilité d'utiliser TLSv1.3 lors de la construction avec la bibliothèque BoringSSL, pas seulement OpenSSL.

Source: opennet.ru

Ajouter un commentaire