Release van nginx 1.30.0 en de fork FreeNginx 1.30.0

Na het jaar van ontwikkeling is de nieuwe stabiele tak van de hoogpresterende HTTP-server en meerprotocolproxyserver nginx 1.30.0 gepubliceerd, die alle wijzigingen heeft opgenomen die zijn verzameld in de hoofdversie 1.29.x. In de toekomst zullen alle wijzigingen in de stabiele tak 1.30 gericht zijn op het oplossen van ernstige fouten en kwetsbaarheden. Binnenkort zal de hoofdversie nginx 1.31 worden gevormd, waarin de ontwikkeling van nieuwe mogelijkheden zal worden voortgezet. Voor gewone gebruikers, die geen compatibiliteit met externe modules hoeven te waarborgen, wordt aangeraden om de hoofdversie te gebruiken, op basis waarvan elke drie maanden releases van het commerciële product Nginx Plus worden samengesteld. De code van nginx is geschreven in de programmeertaal C en wordt verspreid onder de BSD-licentie.

Volgens het rapport van februari van het bedrijf Netcraft draait nginx op ongeveer 321 miljoen websites (een jaar geleden 245 miljoen, twee jaar geleden 243 miljoen, drie jaar geleden 289 miljoen). Nginx wordt gebruikt op 16,08% van alle actieve websites (een jaar geleden 17,89%, twee jaar geleden 18,15%, drie jaar geleden 18,94%), wat tweede plaats in populariteit in deze categorie betekent (Apache heeft een aandeel van 13,27% (een jaar geleden 16,03%, twee jaar geleden 20,09%, drie jaar geleden 20,52%), Cloudflare — 20,62% (17,81%, 14,12%, 11,32%), Google — 10,65% (9,89%, 10,41%, 9,89%).

Als we naar alle websites kijken, behoudt nginx zijn leiderschap met een marktaandeel van 22,65% (een jaar geleden 20,48%, twee jaar geleden 22,31%, drie jaar geleden 25,94%), terwijl Apache een marktaandeel van 12,19% heeft (16,03%, 20,17%, 20,58%), Cloudflare — 15,27% (12,87%, 11,24%, 10,17%), OpenResty (een platform gebaseerd op nginx en LuaJIT) — 8,01% (9,36%, 7,93%, 7,94%).

Onder de miljoen meest bezochte websites ter wereld staat nginx op de tweede plaats met een aandeel van 19,85% (een jaar geleden 20,37%, twee jaar geleden 20,63%, drie jaar geleden 21,37%). Cloudflare behoudt de eerste plaats met 26,84% (22,32%, 22,59%, 21,62%). Het aandeel van Apache httpd is 15,84% (17,95%, 20,09%, 21,18%). Release van nginx 1.30.0 en de fork FreeNginx 1.30.0

Volgens W3Techs wordt nginx gebruikt op 32,8% van de miljoen meest bezochte websites (in april vorig jaar was dit percentage 33,8%, het jaar daarvoor 34,3%). Het aandeel van Apache is in een jaar gedaald van 26,3% naar 23,9%, het aandeel van Microsoft IIS is gedaald van 4% naar 3,4%, en het aandeel van Caddy is gedaald van 0,3% naar 0,2%. Het aandeel van Node.js is gestegen van 4,4% naar 6,0%, en het aandeel van LiteSpeed is gestegen van 14,6% naar 15,2%.

De meest opvallende verbeteringen die zijn toegevoegd tijdens de vorming van de hoofdversie 1.29.x:

  • Ondersteuning toegevoegd voor de TLS-uitbreiding ECH (Encrypted ClientHello), die de ontwikkeling van de ESNI-uitbreiding (Encrypted Server Name Indication) voortzet en wordt gebruikt voor het versleutelen van informatie over de parameters van TLS-sessies, zoals de aangevraagde domeinnaam. Het belangrijkste verschil tussen ECH en ESNI is dat bij ECH in plaats van het versleutelen op het niveau van afzonderlijke velden het hele TLS-bericht ClientHello wordt versleuteld, waardoor informatie die niet door ESNI wordt gedekt, zoals het PSK-veld (Pre-Shared Key), kan worden geblokkeerd. Het gebruik van ECH kan worden geactiveerd door het op te nemen in de directive "ssl_ech_file" in het ECH-configuratiebestand in PEM-indeling. Ondersteuning is beschikbaar bij het gebruik van OpenSSL-builds met ECH.
  • Ondersteuning voor het Multipath TCP-protocol (MPTCP) is toegevoegd, waardoor pakketten gelijktijdig via meerdere routes over verschillende netwerkintefaces kunnen worden afgeleverd. Een parameter "multipath" is toegevoegd aan de directive "listen" om dit in te schakelen.
  • De mogelijkheid om client-sessies aan dezelfde servers in een groep te koppelen is toegevoegd. Er zijn drie methoden beschikbaar: "cookie" — verzending van gegevens over de geselecteerde de server via de opgegeven Cookie; "route" — de proxyserver wijst een route toe aan de client bij de eerste aanvraag; "learn" — nginx analyseert de antwoorden van de upstream-server en onthoudt sessies die door de server zijn gestart. Voor het instellen van de binding is de directive "sticky" toegevoegd aan het "upstream"-blok van de "http"-module, en de parameters "route" en "drain" zijn toegevoegd aan de directive "server".
  • De directive "early_hints" is toegevoegd en ondersteuning voor HTTP-statuscode 103 in antwoorden van proxy- en gRPC-backends is geïmplementeerd. Statuscode 103 maakt het mogelijk om de client te informeren over de inhoud van sommige HTTP-headers direct na de aanvraag, zonder te wachten totdat de server alle bij de aanvraag horende operaties heeft uitgevoerd en met het leveren van de inhoud is begonnen. Op dezelfde manier kunnen hints worden gegeven over elementen die gerelateerd zijn aan de weergegeven pagina, die vooraf kunnen worden geladen (bijvoorbeeld kunnen links naar gebruikte css en javascript op de pagina worden gegeven). Zodra informatie over dergelijke bronnen is ontvangen, begint de browser met hun laadproces, zonder te wachten op de voltooiing van de levering van de hoofdpagina, wat de totale verwerkings tijd van de aanvraag verkort.
  • Er zijn nieuwe richtlijnen add_header_inherit en add_trailer_inherit toegevoegd, waarmee de erfregels voor de waarden die zijn opgegeven in de richtlijnen add_header en add_trailer kunnen worden aangepast. De parameter 'off' schakelt het erfmechanisme uit, terwijl de parameter 'merge' het mogelijk maakt om waarden van het vorige niveau toe te voegen aan de waarden op het huidige niveau.
  • De richtlijn 'ssl_certificate_compression' is toegevoegd om de compressie te beheren. TLS-certificaten.
  • De richtlijn max_headers is toegevoegd, die het maximale aantal HTTP-headers in een aanvraag beperkt. Bij overschrijding van de limiet wordt een fout 400 (Bad Request) geretourneerd. Deze mogelijkheid is overgebracht uit FreeNginx.
  • De variabelen $request_port en $is_request_port zijn toegevoegd. De eerste variabele bevat het poortnummer uit de URI-component of uit de 'Host'-header, en de tweede bevat ':' als de variabele $request_port niet leeg is.
  • De variabelen $ssl_sigalg en $ssl_client_sigalg zijn toegevoegd, die de naam van het algoritme voor digitale handtekeningen voor de TLS-verbinding bevatten.
  • De parameter 'volatile' is toegevoegd aan de 'geo'-richtlijn, die de caching van de variabele uitschakelt. Het gebruik van masks in de 'include'-richtlijn, die binnen het 'geo'-blok is opgegeven, is toegestaan.
  • De richtlijn 'keepalive' is standaard ingeschakeld in het 'upstream'-blok. Aan de 'keepalive'-richtlijn, gebruikt in het 'upstream'-blok, is de parameter 'local' toegevoegd. Wanneer deze parameter is opgegeven, wordt in plaats van het delen van één verbinding met de algemene upstream-server, genoemd in verschillende 'location'- en 'server'-blokken, voor elk blok een aparte verbinding met de upstream onderhouden.
  • Bij gebruik in proxy-modus is standaard versie HTTP/1.1 ingesteld met ingeschakelde keep-alive modus (in de ngx_http_proxy_module is standaard ondersteuning voor keep-alive ingeschakeld en is de waarde '1.1' ingesteld in de 'proxy_http_version'-richtlijn en is het verzenden van de 'Connection'-header standaard stopgezet).
  • In de ngx_http_proxy-module is ondersteuning voor het HTTP/2-protocol toegevoegd, waardoor HTTP/2 kan worden gebruikt bij aanvragen aan backends.
  • De mogelijkheid om cryptografische sleutels te laden uit hardwaretokens is geboden, met behulp van de OpenSSL-bibliotheek als aanbieder.
  • In de implementatie van het QUIC-protocol is ondersteuning voor de 0-RTT-modus toegevoegd, beschikbaar op systemen met OpenSSL 3.5.1 en nieuwere versies.
  • De mogelijkheid voor compilatie met de cryptografische bibliotheek AWS-LC, ontwikkeld door Amazon, is toegevoegd.
  • Standaard is compressie voor TLSv1.3-certificaten uitgeschakeld.
  • Compatibiliteit met de OpenSSL 4.0-bibliotheek is gegarandeerd.

Daarnaast kan worden vermeld dat de publicatie van de release van het FreeNginx-project 1.30.0, die een fork van Nginx ontwikkelt. De ontwikkeling van de fork wordt geleid door Maxim Dunin, een van de sleutelontwikkelaars van Nginx. FreeNginx wordt gepositioneerd als een non-profitproject dat de ontwikkeling van de Nginx-codebase zonder bedrijfsinmenging waarborgt. De code van FreeNginx blijft onder de BSD-licentie beschikbaar. Onder de wijzigingen in de FreeNginx 1.30-tak: ondersteuning voor de TLS-uitbreiding ECH (Encrypted Client Hello) toegevoegd; verbeterde verwerking van de limit_rate-directive; nieuwe directives send_min_rate en client_body_min_rate toegevoegd; mogelijkheid geïmplementeerd om het aantal verbindingen en de intensiteit van verzoeken in de mailproxy te beperken; ondersteuning voor GeoIP2-databases toegevoegd in de GeoIP-module; versterkte bescherming van de XSLT-module.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster