Udgivelse af nginx 1.22.0

Efter 13 måneders udvikling er den nye stabile version af den højtydende HTTP-server og multippel protokol proxy-server nginx 1.22.0 blevet præsenteret. Denne version har samlet ændringerne fra hovedversionen 1.21.x. Fremover vil alle ændringer i den stabile version 1.22 fokusere på at rette alvorlige fejl og sårbarheder. Snart vil hovedversionen nginx 1.23 blive dannet, hvor nye funktioner vil blive fortsat udviklet. For almindelige brugere, der ikke har behov for at sikre kompatibilitet med tredjepartsmoduler, anbefales det at bruge hovedversionen, som danner grundlag for udgivelser af det kommercielle produkt Nginx Plus hver tredje måned.

Ifølge april-rapporten fra Netcraft anvendes nginx på 20,08 % af alle aktive websteder (20,15 % for et år siden, 19,56 % for to år siden), hvilket giver det en andenplads i popularitet i denne kategori (Apaches andel er 22,58 % (25,38 % for et år siden), Cloudflare — 10,42 % (8,51 %), Google — 8,89 % (10,09 %). Når man ser på alle websteder, bevarer nginx sin førerposition og har en markedsandel på 31,13 % (35,34 % for et år siden, 36,91 % for to år siden), mens Apaches andel er 23,08 % (25,98 %), OpenResty (platform baseret på nginx og LuaJIT) — 8,01 % (6,55 %), Cloudflare — 5,49 %, Microsoft IIS — 4 % (5,96 %).

Blandt en million af de mest besøgte websteder i verden udgør nginx 21,79 % (23,06 % for et år siden, 25,54 % for to år siden). I øjeblikket driver nginx omkring 361 millioner websteder (419 millioner for et år siden). Ifølge W3Techs anvendes nginx på 33,5 % af de million mest besøgte websteder; dette tal var 33,8 % i maj sidste år og 31,9 % for året før. Andelen af Apache er faldet fra 33,8 % til 31,5 % i løbet af året, mens andelen af Microsoft IIS er faldet fra 7 % til 6 %. Andelen af LiteSpeed er steget fra 8,5 % til 12,1 %, og Node.js er steget fra 1,2 % til 1,9 %. I Rusland anvendes nginx på 79,8 % af de mest besøgte websteder (79,1 % for et år siden).

De mest markante forbedringer, der er tilføjet under oprettelsen af hovedversionen 1.21.x:

  • I direktiverne "proxy_ssl_certificate", "proxy_ssl_certificate_key", "grpc_ssl_certificate", "grpc_ssl_certificate_key", "uwsgi_ssl_certificate" og "uwsgi_ssl_certificate_key" er der tilføjet support for variable.
  • I mailproxy-modulet er der tilføjet support for 'pipelining'-tilstand til at sende flere POP3- eller IMAP-anmodninger i én forbindelse, samt en ny direktiv 'max_errors', der angiver det maksimale antal protokolfejl, hvorefter forbindelsen lukkes.
  • Overførsel af 'Auth-SSL-Protocol'- og 'Auth-SSL-Cipher'-overskrifterne er implementeret server for autentificering af mailproxyen.
  • Modulet stream har fået tilføjet støtte for TLS-udvidelsen ALPN. For at definere listen over understøttede ALPN-protokoller (h2, http/1.1) er direktivet ssl_alpn foreslået, og for at få oplysninger om den af klienten aftalte ALPN-protokol er variablen $ssl_alpn_protocol tilgængelig.
  • I stream-modulet er der tilføjet en parameter "fastopen", der aktiverer "TCP Fast Open"-tilstand for lytte-sockets.
  • Escape af tegnene «»», «», «\», «^», «`», «{«, «|» og «}» er blevet etableret ved proxyering med URI-ændringer.
  • Modulet stream har fået tilføjet direktivet proxy_half_close, som lader dig konfigurere adfærden ved lukning af en proxyforbindelse TCP på den ene side («TCP half-close»).
  • Modulet ngx_http_mp4_module har fået tilføjet det nye direktiv mp4_start_key_frame til streaming af video, der starter fra en nøgleframe.
  • Variablen $ssl_curve er blevet tilføjet, som returnerer typen af den elliptiske kurve, der er valgt til nøgleaftalen i TLS-sessionen.
  • I direktivet «sendfile_max_chunk» er standardværdien ændret til 2 megabyte;
  • Kompatibiliteten med OpenSSL 3.0 er blevet sikret. Støtte til kald af SSL_sendfile() er tilføjet ved brug af OpenSSL 3.0.
  • Kompilering med PCRE2-biblioteket, der tilbyder funktioner til håndtering af regulære udtryk, er nu aktiveret som standard.
  • Ved indlæsning af certifikater server er brugen af sikkerhedsniveauer, der understøttes fra OpenSSL 1.1.0 og angives via parameteren «@SECLEVEL=N» i direktivet ssl_ciphers, blevet etableret.
  • Støtten for eksportcipher-sættet er ophørt.
  • I API'en for filtrering af anmodningskroppen er buffering af de behandlede data blevet tilladt.
  • På FreeBSD-platformen er støtten til systemopkaldet sendfile forbedret, der er beregnet til direkte overførsel af data mellem en filbeskrivelse og en socket. Modus sendfile(SF_NODISKIO) er konstant aktivt, og støtte til modus sendfile(SF_NOCACHE) er tilføjet.
  • Støtten for etablering af HTTP/2-forbindelser ved hjælp af NPN-udvidelsen (Next Protocol Negotiation) i stedet for ALPN er ophørt.
  • Der er sikret blokering af HTTP/1.0-anmodninger, der inkluderer HTTP-headeren «Transfer-Encoding» (introduceret i versionen HTTP/1.1).
  • Beskytelsen mod angreb af typen «HTTP Request Smuggling» på frontend-backend-systemer, der tillader indblanding i indholdet af andre brugeranmodninger, der behandles i samme strøm mellem frontend og backend, er blevet styrket. Nginx returnerer nu altid en fejl ved brug af metoden CONNECT; ved samtidig angivelse af overskrifterne «Content-Length» og «Transfer-Encoding»; ved tilstedeværelsen af mellemrum eller kontroltegn i anmodningslinjen, HTTP-headerens navn eller i værdien af headeren «Host».

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster