nginx 1.30.0 ja FreeNginx 1.30.0 vÀljaanne

PĂ€rast aasta kestnud arendust on avaldatud uus stabiilne versioon kĂ”rge jĂ”udlusega HTTP-serverist ja mitme protokolli tugiproxist nginx 1.30.0, mis sisaldab 1.29.x pĂ”hiversioonis kogunenud muudatusi. Edaspidised muudatused stabiilses versioonis 1.30 keskenduvad tĂ”siste vigade ja haavatavuste kĂ”rvaldamisele. Varsti luuakse pĂ”hiversioon nginx 1.31, kus jĂ€tkatakse uute vĂ”imaluste arendamist. Tavalistele kasutajatele, kellel ei ole vaja tagada ĂŒhilduvust kolmandate osapoolte moodulitega, soovitatakse kasutada pĂ”hiversiooni, mille alusel iga kolme kuu tagant loodetakse kommertstoote Nginx Plus vĂ€ljaanded. Nginx-i kood on kirjutatud C keeles ja jagatakse BSD litsentsi alusel.

Vastavalt Netcrafti veebruari raportile töötab nginx-i juhtimisel umbes 321 miljonit veebisaiti (aasta tagasi 245 miljonit, kaks aastat tagasi — 243 miljonit, kolm aastat tagasi 289 miljonit). Nginx-i kasutatakse 16,08% kĂ”igist aktiivsetest veebisaitidest (aasta tagasi 17,89%, kaks aastat tagasi 18,15%, kolm aastat tagasi 18,94%), mis asetab selle teisele kohale populaarsete veebiserverite seas (Apache osakaal on 13,27% (aasta tagasi 16,03%, kaks aastat tagasi 20,09%, kolm aastat tagasi 20,52%), Cloudflare — 20,62% (17,81%, 14,12%, 11,32%), Google — 10,65% (9,89%, 10,41%, 9,89%).

Vaadates kĂ”iki veebisaite, hoiab nginx oma positsiooni ja hĂ”lmab 22,65% turust (aasta tagasi 20,48%, kaks aastat tagasi — 22,31%, kolm aastat tagasi — 25,94%), samas kui Apache osakaal on 12,19% (16,03%, 20,17%, 20,58%), Cloudflare — 15,27% (12,87%, 11,24%, 10,17%), OpenResty (platform nginx-i ja LuaJIT-i alusel) — 8,01% (9,36%, 7,93%, 7,94%).

Miljoni kĂ”ige kĂŒlastatuma veebisaidi seas maailmas jÀÀb nginx teisele kohale, omades osakaalu 19,85% (aasta tagasi 20,37%, kaks aastat tagasi 20,63%, kolm aastat tagasi 21,37%). Esimese koha hoiab Cloudflare — 26,84% (22,32%, 22,59%, 21,62%). Apache httpd osakaal on 15,84% (17,95%, 20,09%, 21,18%). nginx 1.30.0 ja FreeNginx 1.30.0 vĂ€ljaanne

W3Techsi andmetel kasutatakse nginx'i 32,8% maailma miljonist kĂ”ige kĂŒlastatumast veebisaidist (eelmisel aprillil oli see nĂ€itaja 33,8%, eelmisel aastal 34,3%). Apache'i osakaal on aastaga langenud 26,3%-lt 23,9%-le, Microsoft IIS osakaal on vĂ€henenud 4%-lt 3,4%-le, ning Caddy osakaal 0,3%-lt 0,2%-le. Node.js osakaal on tĂ”usnud 4,4%-lt 6,0%-le ja LiteSpeed osakaal 14,6%-lt 15,2%-le.

Peamistes 1.29.x versioonide arendamise kÀigus lisatud kÔige silmatorkavamad tÀiustused:

  • Lisatud on TLS-i laienduse ECH (Encrypted ClientHello) tugi, mis jĂ€tkab ESNI (Encrypted Server Name Indication) laienduse arendamist ja mida kasutatakse TLS-seansside parameetrite, nĂ€iteks nĂ”utava domeeninime, teabe krĂŒptimiseks. Peamine erinevus ECH ja ESNI vahel on see, et ECH-is krĂŒptitakse kogu TLS ClientHello sĂ”num, mitte ĂŒksikute vĂ€ljade tasandil, mis vĂ”imaldab vĂ€ltida lekkimist vĂ€ljade kaudu, mida ESNI ei hĂ”lma, nĂ€iteks PSK (Pre-Shared Key) vĂ€li. ECH kasutamine lĂŒlitatakse sisse, mÀÀrates ECHConfig faili konfiguratsioonidirektiivis «ssl_ech_file» PEM formaadis. Tugi on saadaval ECH-ga OpenSSL-i versioonide kasutamisel.
  • Support for the Multipath TCP (MPTCP) protocol has been added, allowing packets to be delivered simultaneously over multiple paths through different network interfaces. A 'multipath' parameter has been added to the 'listen' directive for enabling this feature.
  • Lisatud on vĂ”imalus siduda kliendi sessioone sama grupi serveritega. Saadaval on kolm meetodit: „cookie“ — valitud andmete edastamine mÀÀratud serveril kokkuvĂ”tte kaudu mÀÀratud kĂŒpsise kaudu; „route“ — edastatav server mÀÀrab kliendile marsruudi esimesel pĂ€ringul; „learn“ — nginx analĂŒĂŒsib upstream-serveri vastuseid ja mĂ€letab serveri poolt algatatud sessioone. Sidumise seadistamiseks on http-mooduli „upstream“ plokki lisatud „sticky“ direktiiv ning „server“ direktiivi on lisatud parameetrid „route“ ja „drain“.
  • Lisatud on direktiiv «early_hints» ja toetatakse HTTP-koodi 103 vastustes proxy ja gRPC taustsĂŒsteemide poolt. Kood 103 vĂ”imaldab teavitada klienti mĂ”ningate HTTP-pealkirjade sisust kohe pĂ€rast pĂ€ringut, oodates, et server tĂ€idaks kĂ”ik seotud pĂ€ringuga seotud toimingud ja alustaks sisu edastamist. Sellisel viisil on vĂ”imalik edastada vihjeid seotud elementide kohta, mida vĂ”ib eelnevalt laadida (nĂ€iteks vĂ”ivad olla antud lingid lehe kasutatavatele css ja javascript failidele). Selliste ressursside kohta teabe saamine vĂ”imaldab brauseril alustada nende laadimist, oodates peamise lehe edastamise lĂ”petamist, mis vĂ”imaldab vĂ€hendada kogu pĂ€ringu töötlemise aega.
  • Lisatud on direktiivid add_header_inherit ja add_trailer_inherit, mis vĂ”imaldavad muuta vÀÀrtuste pĂ€rimise reegleid, mis on mÀÀratud direktiivides add_header ja add_trailer. Parameeter «off» tĂŒhistab vÀÀrtuste pĂ€rimise, samas kui parameeter «merge» vĂ”imaldab eelnevalt tasemelt saadud vÀÀrtuste lisamist praeguse taseme vÀÀrtustele.
  • Lisatud on direktiiv «ssl_certificate_compression», mis haldab kompressiooni TLS-sertifikaadid.
  • Lisatud direktiiv max_headers, mis piirab HTTP-pealkirjade maksimaalset arvu pĂ€ringus. Kui piir ĂŒletatakse, tagastatakse viga 400 (Bad Request). See vĂ”imalus on ĂŒle viidud FreeNginx-ist.
  • Lisatud muutujad $request_port ja $is_request_port. Esimene muutuja sisaldab sadama numbrit URI komponendist vĂ”i pealkirjast "Host", teine sisaldab ":" juhul, kui muutuja $request_port ei ole tĂŒhi.
  • Lisatud muutujad $ssl_sigalg ja $ssl_client_sigalg, mis sisaldavad digitaalallkirja looja algoritmi nime TLS-ĂŒhenduse jaoks.
  • Direktiivi "geo" lisati parameeter "volatile", mis keelab muutuja vahemĂ€lestuse. Maskide kasutamine on lubatud direktiivis "include", mis on mÀÀratud "geo" plokis.
  • Plokis "upstream" on vaikimisi aktiveeritud direktiiv "keepalive". Direktiivi "keepalive", mida kasutatakse plokis "upstream", lisati parameeter "local". Kui see parameeter on mÀÀratud, toetatakse iga ploki jaoks eraldi ĂŒhendust upstream-serveriga, mida mainitakse erinevates location ja server plokkides, selle asemel, et kasutada ĂŒhte ĂŒhendust ĂŒhise upstream-serveriga.
  • ProxireĆŸiimi kasutamisel on vaikimisi mÀÀratud protokolli versiooniks HTTP/1.1, millega on lubatud keep-alive reĆŸiim (ngx_http_proxy_module moodulis on vaikimisi lubatud keep-alive ja direktiivis "proxy_http_version" on seatud vÀÀrtuseks "1.1", peatades vaikimisi pealkirja "Connection" saatmise).
  • Modul ngx_http_proxy on saanud toetuse HTTP/2 protokollile, mis vĂ”imaldab kasutada HTTP/2 taustadele pöördumisel.
  • Kryptograafiliste vĂ”tmete ĂŒleslaadimise vĂ”imalus riistvaralistest tokenitest, kasutades teenusena OpenSSL teeki.
  • QUIC protokolli rakendusse on lisatud 0-RTT reĆŸiimi tugi, mis on saadaval OpenSSL 3.5.1 ja uuemates sĂŒsteemides.
  • Lisatud on vĂ”imalus koostada koos Amazon'i arendatud AWS-LC krĂŒptograafiateegiga.
  • TLSv1.3 sertifikaatide kokkusurumine on vaikimisi keelatud.
  • Tagatud on ĂŒhilduvus OpenSSL 4.0 teegiga.

Samuti tasub mainida FreeNginx projekti vĂ€ljaande 1.30.0 avaldamist, mis arendab Nginxi haru. Haru arendab Maksim Dunin, ĂŒks Nginxi peamistest arendajatest. FreeNginx positsioneerib end kui mittetulunduslik projekt, mis tagab Nginxi koodibaasi arendamise ilma ettevĂ”tlussekkumiseta. FreeNginx kood jĂ€tkab BSD litsentsi all avaldamist. FreeNginx 1.30 haru muudatused: lisatud on ECH (Encrypted Client Hello) TLS-laienemise tugi; parendatud on limit_rate direktiivi töötlemist; lisatud on send_min_rate ja client_body_min_rate direktiivid; rakendatud on ĂŒhenduste arvu ja pĂ€ringute intensiivsuse piiramine meiliserveris; GeoIP moodulis on lisatud GeoIP2 andmebaasi tugi; XSLT mooduli kaitset on tugevdatud.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster