nginx 1.18.0 vrijgeven

Na een jaar van ontwikkeling gepresenteerd nieuwe stabiele tak van krachtige HTTP-server en multiprotocol proxyserver nginx 1.18.0, dat de veranderingen absorbeerde die zich binnen de hoofdtak 1.17.x hadden verzameld. In de toekomst zullen alle veranderingen in de stabiele tak 1.18 verband houden met het elimineren van ernstige fouten en kwetsbaarheden. Binnenkort wordt de hoofdtak van nginx 1.19 gevormd, waarbinnen de ontwikkeling van nieuwe features zal doorgaan. Voor gewone gebruikers die niet de taak hebben om compatibiliteit met modules van derden te garanderen, aanbevolen gebruik de hoofdtak, op basis waarvan elke drie maanden releases van het commerciële product Nginx Plus worden gevormd.

In overeenstemming met Verslag van april Netcraft nginx wordt gebruikt op 19.56% van alle actieve sites (een jaar geleden 20.73%, twee jaar geleden 21.02%), wat overeenkomt met de tweede plaats in populariteit in deze categorie (het aandeel van Apache komt overeen met 27.64%, Google - 10.03%, Microsoft IIS - 4.77%). Tegelijkertijd behoudt nginx, bij het overwegen van alle sites, zijn leiderschap en bezet het 36.91% van de markt (een jaar geleden 27.52%), terwijl het aandeel van Apache overeenkomt met 24.73%, Microsoft IIS - 12.85%, Google - 3.42%.

Onder de miljoen meest bezochte sites ter wereld bedraagt ​​het aandeel van nginx 25.54% (een jaar geleden 26.22%, twee jaar geleden 23.76%). Momenteel draaien ongeveer 459 miljoen websites Nginx (397 miljoen een jaar geleden). Door Volgens W3Techs nginx wordt gebruikt op 31.9% van de sites van de miljoen meest bezochte, in april vorig jaar was dit cijfer 41.8%, het jaar daarvoor - 38% (de daling wordt verklaard door de overgang naar een aparte boekhouding van de Cloudflare http-server). Het aandeel van Apache daalde in de loop van het jaar van 43.6% naar 38.9%, en het aandeel van Microsoft IIS van 8.6% naar 8.3%. In Rusland nginx gebruikt op 78.9% van de meest bezochte sites (een jaar geleden - 81%).

De meest opvallende verbeteringen die zijn toegevoegd tijdens de ontwikkeling van de 1.17.x upstream-vertakking:

  • Richtlijn toegevoegd limit_req_dry_run, die de proefuitvoeringsmodus activeert, waarin geen beperkingen worden toegepast op de intensiteit van de verwerking van verzoeken (zonder snelheidslimiet), maar rekening blijft houden met het aantal verzoeken dat de limieten in het gedeelde geheugen overschrijdt;
  • Richtlijn toegevoegd limit_conn_dry_run, die de ngx_http_limit_conn_module module in de testrunmodus schakelt, waarin het aantal verbindingen niet wordt beperkt, maar wel in aanmerking wordt genomen;
  • Richtlijn toegevoegd "auth_vertraging", waarmee u een vertraging kunt toevoegen aan ongeautoriseerde verzoeken met een responscode van 401 om de intensiteit van het raden van wachtwoorden te verminderen en u te beschermen tegen aanvallen, het manipuleren van de meting van de uitvoeringstijd van bewerkingen (timingaanval) bij toegang tot systemen waartoe de toegang beperkt is wachtwoord, resultaat van een subquery of JWT (JSON-webtoken);
  • Ondersteuning toegevoegd voor variabelen in de richtlijnen "limit_rate" en "limit_rate_after", evenals in de richtlijnen "proxy_upload_rate" en "proxy_download_rate" van de streammodule;
  • In de richtlijn grpc_pass ondersteuning toegevoegd voor het gebruik van een variabele in een parameter die een adres definieert. Als het adres als domeinnaam is opgegeven, wordt de naam opgezocht in de beschreven groepen servers en, indien niet gevonden, vervolgens bepaald met behulp van een solver;
  • Nieuwe variabelen toegevoegd $proxy_protocol_server_addr и $proxy_protocol_server_port, die het serveradres en de poort bevatten die zijn verkregen uit de PROXY-protocolheader;
  • In de module ngx_stream_limit_conn_module variabele toegevoegd $limit_conn_status, waarin het resultaat wordt opgeslagen van het beperken van het aantal verbindingen: PASSED, REJECTED of REJECTED_DRY_RUN;
  • In de module ngx_http_limit_req_module variabele toegevoegd $limit_req_status, waarin het resultaat wordt opgeslagen van het beperken van de aankomstsnelheid van verzoeken: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN of REJECTED_DRY_RUN;
  • Standaard is de module gemonteerd ngx_http_postpone_filter_module;
  • Ondersteuning toegevoegd voor het schakelen tussen benoemde "location"-blokken met behulp van de $r->internal_redirect()-methode die wordt geleverd door de ingebouwde Perl-interpreter. Deze methode omvat nu het verwerken van URI's met escape-tekens;
  • Bij gebruik van de richtlijn “upstream” in het instellingenblok “upstream”.hachee» om taakverdeling met client-server-binding te organiseren: als u een lege sleutelwaarde opgeeft, wordt de uniforme verdelingsmodus (round-robin) nu geactiveerd;
  • Ondersteuning toegevoegd voor het aanroepen van ioctl(FIONREAD), indien beschikbaar, om na verloop van tijd te voorkomen dat er vanaf een snelle verbinding wordt gelezen.

Bron: opennet.ru

Voeg een reactie