Udgivelse af nginx 1.30.0 og forked FreeNginx 1.30.0

Efter et års udvikling er den nye stabile version af den højtydende HTTP-server og mult protokols proxy-server nginx 1.30.0 blevet offentliggjort, som har samlet ændringerne fra den primære version 1.29.x. Fremover vil alle ændringer i den stabile version 1.30 være relateret til udbedring af alvorlige fejl og sårbarheder. Snart vil den primære version nginx 1.31 blive dannet, hvor udviklingen af nye funktioner fortsætter. For almindelige brugere, der ikke har brug for at sikre kompatibilitet med tredjepartsmoduler, anbefales det at bruge den primære version, som der udgives kommercielle produkter Nginx Plus baseret på hver tredje måned. Koden til nginx er skrevet i C og distribueres under BSD-licensen.

Ifølge Netcraft's februar rapport kører der cirka 321 millioner websteder på nginx (245 millioner for et år siden, 243 millioner for to år siden, 289 millioner for tre år siden). Nginx bruges på 16,08% af alle aktive websteder (17,89% for et år siden, 18,15% for to år siden, 18,94% for tre år siden), hvilket placerer det som det næstmest populære i denne kategori (Andelen for Apache er 13,27% (16,03% for et år siden, 20,09% for to år siden, 20,52% for tre år siden), Cloudflare — 20,62% (17,81%, 14,12%, 11,32%), Google — 10,65% (9,89%, 10,41%, 9,89%).

Når man ser på alle websteder, bevarer nginx føringen med en markedsandel på 22,65% (20,48% for et år siden, 22,31% for to år siden, 25,94% for tre år siden), mens andelen for Apache er 12,19% (16,03%, 20,17%, 20,58%), Cloudflare — 15,27% (12,87%, 11,24%, 10,17%), OpenResty (platform baseret på nginx og LuaJIT) — 8,01% (9,36%, 7,93%, 7,94%).

Blandt de mest besøgte millioner websteder i verden indtager nginx andenpladsen med en andel på 19,85% (20,37% for et år siden, 20,63% for to år siden, 21,37% for tre år siden). Førstepladsen holdes af Cloudflare — 26,84% (22,32%, 22,59%, 21,62%). Andelen for Apache httpd er 15,84% (17,95%, 20,09%, 21,18%). Udgivelse af nginx 1.30.0 og forked FreeNginx 1.30.0

Ifølge W3Techs anvendes nginx på 32,8% af de mest besøgte millioner websteder (i april sidste år var denne figur 33,8%, året før 34,3%). Andelen for Apache faldt i løbet af året fra 26,3% til 23,9%, andelen for Microsoft IIS faldt fra 4% til 3,4%, og andelen for Caddy faldt fra 0,3% til 0,2%. Andelen for Node.js steg fra 4,4% til 6,0%, mens andelen for LiteSpeed steg fra 14,6% til 15,2%.

De mest markante forbedringer, der blev tilføjet i forbindelse med dannelsen af den primære version 1.29.x:

  • Understøttelse af TLS-udvidelsen ECH (Encrypted ClientHello) er tilføjet, som fortsætter udviklingen af ESNI (Encrypted Server Name Indication) og bruges til at kryptere oplysninger om parametrene for TLS-sessioner, såsom det anmodede domænenavn. Den væsentligste forskel mellem ECH og ESNI er, at i ECH krypteres hele TLS-beskeden ClientHello i stedet for kun at kryptere på niveauet af individuelle felter, hvilket forhindrer lækager gennem felter, som ikke dækkes af ESNI, f.eks. feltet PSK (Pre-Shared Key). Brug af ECH aktiveres ved at angive filen ECHConfig i PEM-formatet i direktivet "ssl_ech_file". Understøttelse er tilgængelig ved brug af OpenSSL-versioner med ECH.
  • Understøttelse af Multipath TCP-protokollen (MPTCP) er tilføjet, hvilket muliggør levering af pakker samtidig ad flere ruter gennem forskellige netværksinterfacer. For at aktivere det er parameteren "multipath" tilføjet til "listen"-direktivet.
  • Muligheden for at binde klient-sessioner til de samme servere i en gruppe er tilføjet. Tre metoder er tilgængelige: "cookie" — overførsel af oplysninger om den valgte serveren gennem den angivne cookie; "route" — den proxy-server, der tildeler en rute til klienten ved modtagelse af den første anmodning; "learn" — nginx analyserer svar fra upstream-serveren og husker de sessioner, der er startet af serveren. For at konfigurere bindingen er direktivet "sticky" tilføjet i "upstream"-blokken af "http"-modulet, og parametrene "route" og "drain" er tilføjet i "server"-direktivet.
  • Direktivet "early_hints" er tilføjet, og understøttelse af HTTP-koden 103 i svar fra proxy- og gRPC-backends er implementeret. Koden 103 gør det muligt at informere klienten om indholdet af nogle HTTP-headere straks efter anmodningen, uden at vente på, at serveren udfører alle operationer relateret til anmodningen og begynder at levere indholdet. På samme måde kan der gives hints om relaterede elementer på den leverede side, som kan forindlæses (f.eks. links til de anvendte CSS- og JavaScript-filer på siden). Når browseren modtager oplysninger om sådanne ressourcer, vil den begynde at indlæse dem uden at vente på, at hovedsiden er færdigbehandlet, hvilket reducerer den samlede behandlingstid for anmodningen.
  • Directive add_header_inherit og add_trailer_inherit er blevet tilføjet, hvilket gør det muligt at ændre reglerne for arv af værdier angivet i direktiverne add_header og add_trailer. Parameteren "off" annullerer arven af værdier, mens parameteren "merge" inkluderer tilføjelsen af værdier fra det forrige niveau til værdierne på det nuværende niveau.
  • Direktivet "ssl_certificate_compression" er blevet tilføjet for at styre kompressionen. TLS-certifikater.
  • Direktivet max_headers er blevet tilføjet for at begrænse det maksimale antal HTTP-overskrifter i anmodningen. Ved overskridelse af grænsen returneres fejl 400 (Bad Request). Muligheden er blevet overført fra FreeNginx.
  • Variablerne $request_port og $is_request_port er blevet tilføjet. Den første variabel indeholder portnummeret fra URI-komponenten eller fra "Host"-overskriften, mens den anden indeholder ":" hvis variablen $request_port ikke er tom.
  • Variablerne $ssl_sigalg og $ssl_client_sigalg er blevet tilføjet, som indeholder navnet på algoritmen til digital signatur for TLS-forbindelsen.
  • Parameteren "volatile" er blevet tilføjet til direktivet "geo", som deaktiverer cache af variablen. Det er tilladt at bruge masker i direktivet "include", der er angivet inden for "geo"-blokken.
  • Direktivet "keepalive" er som standard aktiveret i "upstream"-blokken. Parameteren "local" er blevet tilføjet til "keepalive"-direktivet, der bruges i "upstream"-blokken. Når denne parameter angives, opretholdes der et separat forbindelsestil hver blok i stedet for at dele et enkelt forbindelsestil den fælles upstream-server, der nævnes i forskellige location- og serverblokke.
  • Når proxy-tilstand bruges, er HTTP/1.1 protokolversionen som standard sat med aktiveret keep-alive-tilstand (i ngx_http_proxy_module er supporten for keep-alive aktiveret som standard og værdien "1.1" er angivet i direktivet "proxy_http_version", og afsendelse af headeren "Connection" er som standard stoppet).
  • Modulet ngx_http_proxy har fået support til HTTP/2-protokollen, hvilket muliggør brug af HTTP/2 ved anmodninger til backend.
  • Muligheden for at indlæse kryptografiske nøgler fra hardware-tokens er blevet givet ved at bruge OpenSSL-biblioteket som udbyder.
  • Støtte til 0-RTT-tilstand er blevet tilføjet til implementeringen af QUIC-protokollen, tilgængelig på systemer med OpenSSL 3.5.1 og nyere udgivelser.
  • Muligheden for at bygge med AWS-LC, et kryptografisk bibliotek udviklet af Amazon, er blevet tilføjet.
  • TLSv1.3-certifikatkompression er som standard deaktiveret.
  • Kompatibilitet med OpenSSL 4.0-biblioteket er sikret.

Derudover kan det nævnes, at udgivelsen af projektet FreeNginx 1.30.0 er blevet offentliggjort, som udvikler en fork af Nginx. Forken ledes af Maxim Dunin, en af de centrale udviklere af Nginx. FreeNginx positioneres som et non-profit projekt, der sikrer udviklingen af kodens base af Nginx uden virksomhedens indblanding. Koden til FreeNginx fortsætter med at blive leveret under BSD-licensen. Blandt ændringerne i branchens FreeNginx 1.30: tilføjet support for TLS-udvidelsen ECH (Encrypted Client Hello); forbedret behandling af direktivet limit_rate; tilføjet direktiver send_min_rate og client_body_min_rate; implementeret mulighed for at begrænse antallet af forbindelser og intensiteten af forespørgsler i mailproxyen; tilføjet support for GeoIP2-database i GeoIP-modulet; styrket sikkerhed i XSLT-modulet.

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