Na een jaar van ontwikkeling de nieuwe stabiele tak van de high-performance HTTP-server en multi-protocol proxyserver , die de wijzigingen heeft samengevoegd die zijn verzameld in de hoofdvertakking 1.17.x. In de toekomst zullen alle wijzigingen in de stabiele vertakking 1.18 gericht zijn op het verhelpen van ernstige fouten en kwetsbaarheden. Binnenkort zal de hoofdvertakking nginx 1.19 worden gedefinieerd, waarin de ontwikkeling van nieuwe mogelijkheden zal worden voortgezet. Voor gewone gebruikers die geen compatibiliteit met externe modules hoeven te garanderen, is het aan te raden de hoofdversie te gebruiken, waarop elke drie maanden nieuwe versies van het commerciële product Nginx Plus worden uitgebracht.
In overeenstemming met volgens het bedrijf Netcraft wordt nginx gebruikt op 19,56% van alle actieve websites (een jaar geleden 20,73%, twee jaar geleden 21,02%), wat overeenkomt met de tweede plaats in deze categorie (het aandeel Apache is 27,64%, Google 10,03%, Microsoft IIS 4,77%). Bij het bekijken van alle websites behoudt nginx echter de leiding met 36,91% van de markt (een jaar geleden 27,52%), terwijl het aandeel Apache 24,73% is, Microsoft IIS 12,85%, Google 3,42%.
Van de miljoen meest bezochte websites ter wereld heeft nginx een aandeel van 25,54% (een jaar geleden 26,22%, twee jaar geleden 23,76%). Momenteel draait nginx op ongeveer 459 miljoen websites (een jaar geleden 397 miljoen). Volgens W3Techs wordt nginx gebruikt op 31,9% van de websites uit de miljoen meest bezochte, vorige maand was dit 41,8%, het jaar daarvoor 38% (de daling is te verklaren door de afzonderlijke rapportage van de http-server Cloudflare). Het aandeel Apache is het afgelopen jaar gedaald van 43,6% naar 38,9%, terwijl het aandeel Microsoft IIS is gedaald van 8,6% naar 8,3%. In Rusland wordt nginx gebruikt op 78,9% van de meest bezochte websites (een jaar geleden 81%).
De meest opmerkelijke verbeteringen die zijn toegevoegd tijdens de vorming van de hoofdvertakking 1.17.x:
- Nieuwe richtlijn toegevoegd , die de proefmodus activeert waarin er geen beperkingen gelden voor de verwerkingsintensiteit van verzoeken (zonder rate limit), maar het aantal verzoeken dat buiten de limieten valt nog steeds wordt geregistreerd in het gedeeld geheugen;
- Nieuwe richtlijn toegevoegd , die de ngx_http_limit_conn_module module in een testmodus plaatst, waarin het aantal verbindingen niet beperkt is, maar wel wordt geregistreerd;
- De directive ««, waarmee een vertraging kan worden toegevoegd aan niet-geautoriseerde verzoeken met een 401-responscode om de intensiteit van wachtwoordgokken te verminderen en te beschermen tegen , manipulaties met het meten van de uitvoeringstijd van bewerkingen (timing attack) bij toegang tot systemen waarvoor toegang is beperkt , of (JSON Web Token);
- Ondersteuning toegevoegd voor variabelen in de directieven 'limit_rate' en 'limit_rate_after', evenals in de directieven 'proxy_upload_rate' en 'proxy_download_rate' van de stream-module;
- In de richtlijn ondersteuning toegevoegd voor het gebruik van een variabele in de parameter die het adres bepaalt. Als het adres is opgegeven als een domeinnaam, wordt de naam gezocht in de beschreven servergroepen, en als het niet wordt gevonden, wordt dit vastgesteld met behulp van de resolver;
- Nieuwe variabelen toegevoegd en , die het adres en de poort van de server bevatten, verkregen uit de PROXY-protocolheader;
- In de module een variabele toegevoegd , die het resultaat van de verbindingbeperkingen opslaat: PASSED, REJECTED of REJECTED_DRY_RUN;
- In de module een variabele toegevoegd , die het resultaat van de snelheid van binnenkomende verzoeken opslaat: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN of REJECTED_DRY_RUN;
- Standaard wordt de module gecompileerd ;
- Ondersteuning voor het wisselen van genummerde blokken "location" via de methode $r->internal_redirect(), aangeboden door de ingebouwde Perl-interpreter, is toegevoegd. Deze methode ondersteunt nu de verwerking van URI's met ontsnapte tekens;
- Bij gebruik in de upstream-configuratie van de instructie «» voor load balancing met cliëntbinding aan de server, wordt nu bij opgave van een lege sleutel de gelijkmatige load balancing (round-robin) geactiveerd;
- Ondersteuning voor het aanroepen van ioctl(FIONREAD) is toegevoegd, indien beschikbaar, om te voorkomen dat er gedurende lange tijd uit een snelle verbinding wordt gelezen.
Bron: opennet.ru
