De release van nginx 1.22.0

Na 13 maanden ontwikkeling is de nieuwe stabiele tak van de hoogpresterende HTTP-server en multiprotocol proxyserver nginx 1.22.0 gepresenteerd, die de wijzigingen bevat die zijn aangebracht in de hoofdversie 1.21.x. In de toekomst zullen alle wijzigingen in de stabiele tak 1.22 gericht zijn op het oplossen van ernstige fouten en kwetsbaarheden. Binnenkort zal de hoofdversie nginx 1.23 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 de hoofdversie te gebruiken, waarop elke drie maanden commerciële productreleases van Nginx Plus worden gevormd.

Volgens het aprilrapport van Netcraft wordt nginx gebruikt op 20,08% van alle actieve websites (vorig jaar 20,15%, twee jaar geleden 19,56%), wat overeenkomt met de tweede plaats in populariteit binnen deze categorie (aandeel van Apache is 22,58% (vorig jaar 25,38%), Cloudflare — 10,42% (8,51%), Google — 8,89% (10,09%). Bij het bekijken van alle websites behoudt nginx echter de leiding met een marktaandeel van 31,13% (vorig jaar 35,34%, twee jaar geleden 36,91%), terwijl Apache een aandeel van 23,08% heeft (25,98%), OpenResty (een platform op basis van nginx en LuaJIT) — 8,01% (6,55%), Cloudflare — 5,49%, Microsoft IIS — 4% (5,96%).

Onder de miljoen meest bezochte websites ter wereld bedraagt het aandeel van nginx 21,79% (vorig jaar 23,06%, twee jaar geleden 25,54%). Momenteel draait nginx op ongeveer 361 miljoen websites (vorig jaar 419 miljoen). Volgens W3Techs wordt nginx gebruikt op 33,5% van de websites uit de miljoen meest bezochte, in mei vorig jaar was dit percentage 33,8%, en het jaar daarvoor 31,9%. Het aandeel van Apache is in het afgelopen jaar gedaald van 33,8% naar 31,5%, en het aandeel van Microsoft IIS van 7% naar 6%. Het aandeel van LiteSpeed is gestegen van 8,5% naar 12,1%, en Node.js van 1,2% naar 1,9%. In Rusland wordt nginx gebruikt op 79,8% van de meest bezochte websites (vorig jaar 79,1%).

De meest opmerkelijke verbeteringen die zijn aangebracht tijdens de vorming van de hoofdversie 1.21.x:

  • In de directives 'proxy_ssl_certificate', 'proxy_ssl_certificate_key', 'grpc_ssl_certificate', 'grpc_ssl_certificate_key', 'uwsgi_ssl_certificate' en 'uwsgi_ssl_certificate_key' is ondersteuning voor variabelen toegevoegd.
  • In de e-mail proxy-module is ondersteuning toegevoegd voor de 'pipelining' modus voor het verzenden van meerdere POP3 of IMAP verzoeken over één verbinding, evenals een nieuwe richtlijn 'max_errors', die het maximale aantal protocolfouten definieert, waarna de verbinding zal worden gesloten.
  • De overdracht van de headers 'Auth-SSL-Protocol' en 'Auth-SSL-Cipher' is gerealiseerd server voor de authenticatie van de e-mail proxy.
  • In de stream module is ondersteuning voor de TLS-uitbreiding ALPN toegevoegd. De ssl_alpn-directive is geïntroduceerd om de lijst van ondersteunde ALPN-protocollen (h2, http/1.1) te bepalen, en de variabele $ssl_alpn_protocol geeft informatie over het met de client overeengekomen ALPN-protocol.
  • In de stream-module is de parameter 'fastopen' toegevoegd, die de modus 'TCP Fast Open' inschakelt voor luisterende sockets.
  • Karakterescapes voor «»», «», «\», «^», «`», «{«, «|» en «}» zijn geconfigureerd bij het proxy'en met URI-wijzigingen.
  • In de stream module is de proxy_half_close-directive toegevoegd, waarmee het gedrag bij het sluiten van een TCP-proxyverbinding aan één kant («TCP half-close») kan worden geconfigureerd.
  • In de ngx_http_mp4_module is een nieuwe directive mp4_start_key_frame toegevoegd voor het streamen van videoinhoud, beginnend met een sleutelbeeld.
  • Er is een variabele $ssl_curve toegevoegd die het type elliptische curve retourneert dat is gekozen voor de sleutelovereenkomst in een TLS-sessie.
  • In de directive «sendfile_max_chunk» is de standaardwaarde gewijzigd naar 2 megabyte.
  • Compatibiliteit met OpenSSL 3.0 is verzekerd. Ondersteuning voor de aanroep SSL_sendfile() is toegevoegd bij gebruik van OpenSSL 3.0.
  • Standaard is de build met de PCRE2-bibliotheek ingeschakeld, die functies biedt voor het verwerken van reguliere expressies.
  • Bij het laden van certificaten de server is het gebruik van beveiligingsniveaus geconfigureerd, die worden ondersteund vanaf OpenSSL 1.1.0 en worden gedefinieerd via de parameter «@SECLEVEL=N» in de ssl_ciphers-directive.
  • Ondersteuning voor de exportverzameling van versleutelingen is beëindigd.
  • In de API voor filtering van het aanvraaglichaam is buffering van verwerkte gegevens toegestaan.
  • Op het FreeBSD-platform is de ondersteuning voor de sendfile-systeemaanroep verbeterd, ontworpen voor directe gegevensoverdracht tussen bestandsdescriptoren en sockets. De modus sendfile(SF_NODISKIO) is permanent ingeschakeld en ondersteuning voor de modus sendfile(SF_NOCACHE) is toegevoegd.
  • Ondersteuning voor het opzetten van HTTP/2-verbindingen met behulp van de NPN-uitbreiding (Next Protocol Negotiation) in plaats van ALPN is stopgezet.
  • Blootstelling van HTTP/1.0-aanvragen met de HTTP-header "Transfer-Encoding" is geblokkeerd (die is geïntroduceerd in de versie van het HTTP/1.1-protocol).
  • De bescherming tegen HTTP Request Smuggling-aanvallen op front-end en back-end systemen is versterkt, waardoor indringing in de inhoud van verzoeken van andere gebruikers die in dezelfde thread tussen front-end en back-end worden verwerkt, mogelijk is. Nginx retourneert nu altijd een fout bij het gebruik van de CONNECT-methode; bij gelijktijdige opgave van de headers «Content-Length» en «Transfer-Encoding»; bij aanwezigheid van spaties of controlekarakters in de aanvraagregel, de naam van de HTTP-header of in de waarde van de header «Host».

Bron: opennet.ru

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