Après un an de développement nouvelle branche stable d'un serveur HTTP haute performance et proxy multi-protocoles , qui a intégré les changements accumulés dans la branche principale 1.17.x. À l'avenir, toutes les modifications dans la branche stable 1.18 seront liées à la correction de bogues critiques et de vulnérabilités. Une nouvelle branche principale nginx 1.19 sera bientôt formée, dans laquelle le développement de nouvelles fonctionnalités se poursuivra. Pour les utilisateurs ordinaires qui n'ont pas besoin d'assurer la compatibilité avec des modules tiers, d'utiliser la branche principale, sur la base de laquelle des versions du produit commercial Nginx Plus sont publiées tous les trois mois.
Conformément au de la société Netcraft, nginx est utilisé sur 19,56 % de tous les sites actifs (contre 20,73 % l'année dernière, 21,02 % deux ans auparavant), ce qui correspond à la deuxième place en popularité dans cette catégorie (la part d'Apache est de 27,64 %, Google — 10,03 %, Microsoft IIS — 4,77 %). Ainsi, en considérant l'ensemble des sites, nginx conserve sa position de leader avec 36,91 % du marché (contre 27,52 % l'année dernière), tandis que la part d'Apache est de 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 % (contre 26,22 % l'année dernière, 23,76 % deux ans auparavant). Actuellement, environ 459 millions de sites sont gérés par nginx (contre 397 millions l'année dernière). Selon W3Techs, nginx est utilisé sur 31,9 % des sites du million les plus visités, en avril dernier ce chiffre était de 41,8 %, il y a deux ans — 38 % (la baisse s'explique par la comptabilisation distincte des serveurs HTTP de Cloudflare). La part d'Apache a diminué en un an, passant de 43,6 % à 38,9 %, tandis que celle de Microsoft IIS est passée de 8,6 % à 8,3 %. En Russie, nginx est présent sur 78,9 % des sites les plus visités (contre 81 % l'année dernière).
Les améliorations les plus notables ajoutées lors de la formation de la branche principale 1.17.x :
- Directive ajoutée , qui active le mode d'essai, dans lequel aucune restriction n'est appliquée sur l'intensité du traitement des requêtes (sans limite de taux), mais le nombre de requêtes dépassant les limites est comptabilisé en mémoire partagée ;
- Directive ajoutée , qui met le module ngx_http_limit_conn_module en mode d'essai, dans lequel le nombre de connexions n'est pas limité, mais est comptabilisé ;
- Directive ajoutée ««, permettant d'ajouter un délai pour les requêtes non autorisées avec le code de réponse 401 afin de réduire l'intensité des tentatives de mot de passe et de protéger contre , manipulant la mesure du temps d'exécution des opérations (attaque par chronométrage) lors de l'accès à des systèmes, dont l'accès est limité , ou (JSON Web Token);
- 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 de streaming;
- Dans la directive ajout du support de l'utilisation de variables dans le paramètre définissant l'adresse. Si l'adresse est indiquée sous forme de nom de domaine, le nom est recherché parmi les groupes de serveurs décrits, et, s'il n'est pas trouvé, il est déterminé à l'aide du résolveur;
- Ajout de nouvelles variables et , qui contiennent l'adresse et le port du serveur, obtenus à partir de l'en-tête du protocole PROXY;
- Dans le module ajout de la variable , qui stocke le résultat de la limitation du nombre de connexions : PASSED, REJECTED ou REJECTED_DRY_RUN;
- Dans le module ajout de la variable , 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é ;
- Ajout du support de la commutation des blocs nommés «location» par la méthode $r->internal_redirect(), fournie par l'interpréteur Perl intégré. Cette méthode implique désormais le traitement des URI contenant des caractères échappés;
- Lors de l'utilisation dans le bloc de configuration «upstream» de la directive «» pour organiser l'équilibrage de charge avec liaison du client au serveur, en cas de valeur clé vide, le mode d'équilibrage uniforme (round-robin) est désormais activé;
- Ajout du support de l'appel ioctl(FIONREAD), s'il est disponible, afin d'éviter la lecture à partir d'une connexion rapide pendant une longue période.
Source : opennet.ru
