nginx version 1.18.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.18.0, qui a absorbé les changements accumulés au sein de la branche principale 1.17.x. À l'avenir, tous les changements dans la branche stable 1.18 seront liés à l'élimination d'erreurs et de vulnérabilités graves. La branche principale de nginx 1.19 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.

Conformément à Rapport d'avril Netcraft nginx est utilisé sur 19.56 % de tous les sites actifs (il y a un an 20.73 %, il y a deux ans 21.02 %), ce qui correspond à la deuxième place en popularité dans cette catégorie (la part d'Apache correspond à 27.64 %, Google - 10.03 %, Microsoft IIS - 4.77%) . Dans le même temps, si l'on considère tous les sites, nginx conserve son leadership et occupe 36.91% du marché (il y a un an 27.52%), tandis que la part d'Apache correspond à 24.73%, Microsoft IIS - 12.85%, Google - 3.42%.

Parmi le million de sites les plus visités au monde, la part de nginx est de 25.54 % (26.22 % il y a un an, 23.76 % il y a deux ans). Actuellement, environ 459 millions de sites Web utilisent Nginx (397 millions il y a un an). Par Selon W3Techs nginx est utilisé sur 31.9% des sites sur le million les plus visités, en avril de l'année dernière ce chiffre était de 41.8%, l'année précédente - 38% (la baisse s'explique par le passage à une comptabilité séparée du serveur http Cloudflare). La part d'Apache a chuté sur l'année de 43.6 % à 38.9 %, et celle de Microsoft IIS de 8.6 % à 8.3 %. En Russie, nginx d'occasion sur 78.9% des sites les plus visités (il y a un an - 81%).

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

  • Directive ajoutée limit_req_dry_run, qui active le mode d'essai, dans lequel aucune restriction n'est appliquée sur l'intensité de traitement des requêtes (sans limite de débit), mais continue de prendre en compte le nombre de requêtes dépassant les limites de la mémoire partagée ;
  • Directive ajoutée limit_conn_dry_run, qui fait passer le module ngx_http_limit_conn_module en mode test, dans lequel le nombre de connexions n'est pas limité, mais est pris en compte ;
  • Directive ajoutée "auth_delay", qui vous permet d'ajouter un délai aux demandes non autorisées avec un code de réponse de 401 pour réduire l'intensité de la devinette du mot de passe et vous protéger contre attaques, manipulant la mesure du temps d'exécution des opérations (timing Attack) lors de l'accès à des systèmes dont l'accès est limité mot de passe, résultat d'une sous-requête ou JWT (Jeton Web JSON) ;
  • Ajout du support des variables dans les directives "limit_rate" et "limit_rate_after", ainsi que dans les directives "proxy_upload_rate" et "proxy_download_rate" du module stream ;
  • Dans la directive grpc_pass ajout de la prise en charge de l'utilisation d'une variable dans un paramètre qui définit une adresse. Si l'adresse est spécifiée comme nom de domaine, le nom est recherché parmi les groupes de serveurs décrits et, s'il n'est pas trouvé, alors déterminé à l'aide d'un résolveur ;
  • Nouvelles variables ajoutées $proxy_protocol_server_addr и $proxy_protocol_server_port, qui contiennent l'adresse du serveur et le port obtenus à partir de l'en-tête du protocole PROXY ;
  • Dans le module ngx_stream_limit_conn_module variable ajoutée $limit_conn_status, qui stocke le résultat de la limitation du nombre de connexions : PASSED, REJECTED ou REJECTED_DRY_RUN ;
  • Dans le module ngx_http_limit_req_module variable ajoutée $limit_req_status, qui stocke le résultat de la limitation du taux d'arrivée des requêtes : PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN ou REJECTED_DRY_RUN ;
  • Par défaut, le module est assemblé ngx_http_postpone_filter_module;
  • Ajout de la prise en charge du basculement des blocs nommés « emplacement » à l'aide de la méthode $r->internal_redirect() fournie par l'interpréteur Perl intégré. Cette méthode implique désormais de traiter les URI avec des caractères d'échappement ;
  • Lors de l'utilisation de la directive « upstream » dans le bloc de paramètres « upstream »hachage» pour organiser l'équilibrage de charge avec liaison client-serveur, si vous spécifiez une valeur de clé vide, le mode d'équilibrage uniforme (round-robin) est désormais activé ;
  • Ajout de la prise en charge de l'appel de ioctl(FIONREAD) si disponible pour éviter la lecture à partir d'une connexion rapide au fil du temps.

Source: opennet.ru

Ajouter un commentaire