Vydanie nginx 1.30.0 a forku FreeNginx 1.30.0

Po roku vývoja bola uverejnená nová stabilná verzia vysoko výkonného HTTP servera a viacprotokolového proxy servera nginx 1.30.0, ktorá obsahuje zmeny nazbierané v hlavnej vetve 1.29.x. V budúcnosti budú všetky zmeny v stabilnej vetve 1.30 zamerané na opravy závažných chýb a zraniteľností. Čoskoro bude vytvorená hlavná vetva nginx 1.31, v ktorej sa bude pokračovať vo vývoji nových funkcií. Pre bežných používateľov, ktorí nemajú za cieľ zabezpečiť kompatibilitu s tretími modulmi, sa odporúča používať hlavnú vetvu, na základe ktorej sa raz za tri mesiace vytvárajú vydania komerčného produktu Nginx Plus. Kód nginx je napísaný v jazyku C a je distribuovaný pod licenciou BSD.

Podľa februárového správy spoločnosti Netcraft beží na nginx približne 321 miliónov stránok (pred rokom 245 miliónov, pred dvoma rokmi — 243 miliónov, pred tromi rokmi 289 miliónov). Nginx sa používa na 16.08% všetkých aktívnych stránok (pred rokom 17.89%, pred dvoma rokmi 18.15%, pred tromi rokmi 18.94%), čo zodpovedá druhému miestu z hľadiska popularity v tejto kategórii (podiel Apache je 13.27% (pred rokom 16.03%, pred dvoma rokmi 20.09%, pred tromi rokmi 20.52%), Cloudflare — 20.62% (17.81%, 14.12%, 11.32%), Google — 10.65% (9.89%, 10.41%, 9.89%).

Pri zohľadnení všetkých stránok nginx stále vedie a zaujíma 22.65% trhu (pred rokom 20.48%, pred dvoma rokmi — 22.31%, pred tromi rokmi — 25.94%), zatiaľ čo podiel Apache je 12.19% (16.03%, 20.17%, 20.58%), Cloudflare — 15.27% (12.87%, 11.24%, 10.17%), OpenResty (platforma založená na nginx a LuaJIT) — 8.01% (9.36%, 7.93%, 7.94%).

Medzi miliónom najnavštevovanejších stránok na svete nginx zaujíma druhé miesto s podielom 19.85% (pred rokom 20.37%, pred dvoma rokmi 20.63%, pred tromi rokmi 21.37%). Prvé miesto patrí Cloudflare — 26.84% (22.32%, 22.59%, 21.62%). Podiel Apache httpd — 15.84% (17.95%, 20.09%, 21.18%). Vydanie nginx 1.30.0 a forku FreeNginx 1.30.0

Podľa údajov W3Techs sa nginx používa na 32.8% stránok z milióna najnavštevovanejších (v apríli minulého roku bol tento ukazovateľ 33.8%, pred rokom 34.3%). Podiel Apache sa za rok znížil z 26.3% na 23.9%, podiel Microsoft IIS sa znížil z 4% na 3.4%, a podiel Caddy z 0.3% na 0.2%. Podiel Node.js vzrástol z 4.4% na 6.0%, a podiel LiteSpeed vzrástol z 14.6% na 15.2%.

Najvýraznejšie zlepšenia pridané počas vytvárania hlavnej vetvy 1.29.x:

  • Bola pridaná podpora TLS rozšírenia ECH (Encrypted ClientHello), ktoré pokračuje vo vývoji rozšírenia ESNI (Encrypted Server Name Indication) a používajú sa na šifrovanie informácií o parametroch TLS relácií, ako napríklad požadované doménové meno. Kľúčový rozdiel medzi ECH a ESNI je v tom, že v ECH sa celé TLS hlásenie ClientHello šifruje namiesto šifrovania na úrovni jednotlivých polí, čo zabraňuje únikom prostredníctvom polí, ktoré ESNI nezahŕňa, napríklad pole PSK (Pre-Shared Key). Použitie ECH sa aktivuje zahrnutím v direktíve „ssl_ech_file“ v konfiguračnom súbore ECHConfig vo formáte PEM. Podpora je k dispozícii pri použití zostavení OpenSSL s ECH.
  • Pridaná podpora protokolu Multipath TCP (MPTCP), ktorý umožňuje súčasné doručovanie paketov viacerými smermi cez rôzne sieťové rozhrania. Pre aktiváciu sa do direktívy „listen“ pridala voľba „multipath“.
  • Pridaná možnosť priradiť klientské relácie k rovnakým serverom v skupine. Dostupné sú tri metódy: „cookie“ — prenos dát o vybranom serveri prostredníctvom uvedenej cookie; „route“ — proxy server priradí klientovi trasu pri prijatí prvej požiadavky; „learn“ — nginx analyzuje odpovede od upstream servera a zapamätáva si začaté relácie. Pre nastavenie viazania sa do bloku „upstream“ modulu „http“ pridala direktíva „sticky“ a do direktívy „server“ sa pridali voľby „route“ a „drain“.
  • Pridaná direktíva „early_hints“ a realizovaná podpora HTTP kódu 103 v odpovediach od backendov proxy a gRPC. Kód 103 umožňuje informovať klienta o obsahu niektorých HTTP hlavičiek hneď po požiadavke, bez čakania, kým server vykoná všetky operácie súvisiace s požiadavkou a začne dodávať obsah. Takto môžeme oznámiť nápovedy o súvisiacich prvkoch stránok, ktoré môžu byť predprednášané (napríklad môžu byť uvedené odkazy na používané css a javascript na stránke). Po obdržaní informácií o takýchto zdrojoch začne prehliadač ich načítavanie bez čakania na dokončenie súvislej stránky, čo umožňuje skrátiť celkový čas spracovania požiadavky.
  • Boli pridané direktívy add_header_inherit a add_trailer_inherit, ktoré umožňujú zmeniť pravidlá dedenia hodnôt uvedených v direktívach add_header a add_trailer. Parameter „off“ zruší dedenie hodnôt a parameter „merge“ zahrnie pridanie hodnôt z predchádzajúcej úrovne k hodnotám na aktuálnej úrovni.
  • Pridaná direktíva „ssl_certificate_compression“ na riadenie kompresie TLS-certifikátov.
  • Pridaná direktíva max_headers, ktorá obmedzuje maximálny počet HTTP hlavičiek v požiadavke. Pri prekročení limitu sa vráti chyba 400 (Bad Request). Možnosť bola prenesená z FreeNginx.
  • Boli pridané premenné $request_port a $is_request_port. Prvá premenná obsahuje číslo portu z komponentu URI alebo z hlavičky „Host“, a druhá obsahuje „:“, ak premenná $request_port nie je prázdna.
  • Boli pridané premenné $ssl_sigalg a $ssl_client_sigalg, ktoré obsahujú názov algoritmu na generovanie digitálneho podpisu pre TLS spojenie.
  • Do direktívy „geo“ sa pridala voľba „volatile“, ktorá vypína caching premennej. Povolené je používať masky v direktíve „include“, uvedenej v bloku „geo“.
  • V bloku „upstream“ je predvolená aktivovaná direktíva „keepalive“. Do direktívy „keepalive“, používané v bloku „upstream“, sa pridala voľba „local“. Pri uvedení tejto voľby, namiesto zdieľania jedného spojenia k spoločnému upstream serveru, ktorý sa spomína v rôznych blokoch location a server, sa udržuje samostatné spojenie k upstream pre každý blok.
  • Pri používaní v režime proxy je predvolene nastavená verzia protokolu HTTP/1.1 s aktivovaním režimu keep-alive (v module ngx_http_proxy_module je predvolene aktivovaná podpora keep-alive a je nastavená hodnota „1.1“ v direktíve „proxy_http_version“ a bola zastavená predvolená odosielanie hlavičky „Connection“).
  • Do modulu ngx_http_proxy bola pridaná podpora protokolu HTTP/2, čo umožňuje používať HTTP/2 pri prístupe k backendom.
  • Bol poskytnutý spôsob načítania kryptografických kľúčov z hardvérových tokenov s použitím knižnice OpenSSL ako poskytovateľa.
  • Do implementácie protokolu QUIC bola pridaná podpora režimu 0-RTT, ktorá je dostupná na systémoch s OpenSSL 3.5.1 a novšími verziami.
  • Pridaná možnosť zostavenia s kryptografickou knižnicou AWS-LC, ktorú vyvíja spoločnosť Amazon.
  • Predvolene je vypnuté kompresovanie certifikátov TLSv1.3.
  • Zabezpečená kompatibilita s knižnicou OpenSSL 4.0.

Okrem toho možno spomenúť zverejnenie verzie projektu FreeNginx 1.30.0, ktorý rozvíja fork Nginxu. Vývoj forku vedie Maxim Dunin, jeden z kľúčových vývojárov Nginxu. FreeNginx je pozicionovaný ako neziskový projekt, ktorý zabezpečuje vývoj základného kódu Nginxu bez korporátneho zasahovania. Kód FreeNginx naďalej vychádza pod licenciou BSD. Medzi zmenami vo verzii FreeNginx 1.30: bola pridaná podpora TLS rozšírenia ECH (Encrypted Client Hello); zlepšené spracovanie direktívy limit_rate; pridané direktívy send_min_rate a client_body_min_rate; bola zavedená možnosť obmedzenia počtu spojení a intenzity žiadostí v poštovom proxy; pridaná podpora databázy GeoIP2 v module GeoIP; posilnená ochrana modulu XSLT.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster