PĂ€rast aasta arendust on avaldatud uus stabiilne versioon kĂ”rgtasemel HTTP-serverist ja mitme protokolli vahendajast nginx 1.30.0, mis sisaldab muudatusi, mis on kogunenud pĂ”hiversioonis 1.29.x. Edaspidi seondub kĂ”ik stabiilses harus 1.30 tehtavad muudatused tĂ”siste vigade ja haavatavuste likvideerimisega. Varsti moodustatakse pĂ”hiversioon nginx 1.31, milles jĂ€tkatakse uute vĂ”imaluste arendamist. Tavalistele kasutajatele, kellel ei ole eesmĂ€rki tagada ĂŒhilduvus kolmandate osapoolte moodulitega, soovitatakse kasutada pĂ”hiversiooni, mille pĂ”hjal iga kolme kuu tagant vĂ€ljastatakse kommertstoode Nginx Plus. Nginx'i kood on kirjutatud C keeles ja seda levitatakse BSD litsentsi alusel.
Vastavalt veebruari aruandele Netcrafti ettevĂ”ttest töötab nginx'i all 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 vastab teisele kohale populaarsuses selles kategoorias (Apache'i osakaal vastab 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 saite, sĂ€ilitab nginx juhtpositsiooni ja hĂ”lmab 22.65% turust (aasta tagasi 20.48%, kaks aastat tagasi â 22.31%, kolm aastat tagasi â 25.94%), samas kui Apache'i osakaal on 12.19% (16.03%, 20.17%, 20.58%), Cloudflare â 15.27% (12.87%, 11.24%, 10.17%), OpenResty (nginx'i ja LuaJIT'i platvorm) â 8.01% (9.36%, 7.93%, 7.94%).
Miljoni kĂ”ige kĂŒlastatuma veebisaidi seas maailmas paikneb nginx teisel kohal, osakaalu saavutades 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%). 
W3Techsi andmetel kasutatakse nginx'i 32.8% -l miljonist kĂ”ige kĂŒlastatumast veebisaidist (eelmisel aprillil oli see nĂ€itaja 33.8%, kaks aastat tagasi â 34.3%). Apache'i osakaal on aastaga langenud 26.3%-lt 23.9%-le, Microsoft IIS osakaal on langenud 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, samas kui LiteSpeed osakaal on tĂ”usnud 14.6%-lt 15.2%-le.
MÔned kÔige silmatorkavamad tÀiendused, mis lisati pÔhiversiooni 1.29.x loomise kÀigus:
- Lisatud on TLS laienduse ECH (Encrypted ClientHello) tugi, mis edasi arendab laiendust ESNI (Encrypted Server Name Indication) ja mille eesmĂ€rk on krĂŒpteerida teavet TLS seansside parameetrite kohta, nagu taotletud domeeninimi. ECH peamine erinevus ESNI-st on see, et ECH krĂŒpteerib kogu TLS ClientHello sĂ”numi, mitte ainult ĂŒksikud vĂ€ljad, mis takistab lekkeid, mida ei kaitse ESNI, nĂ€iteks PSK (Pre-Shared Key) vĂ€li. ECH kasutamine aktiveeritakse ECHConfig faili konfiguratsioonis direktiivi âssl_ech_fileâ mÀÀramise kaudu, mis on PEM formaadis. Tugi on saadaval koos OpenSSL koosseisudega, millel on ECH.
- Toetatud on Multipath TCP (MPTCP) protokoll, mis vÔimaldab pakettide saatmist mitme marsruudi kaudu erinevate vÔrgu liideste kaudu. Direktiivi listen on lisatud multipath parameeter.
- Lisatud on vĂ”imalus siduda kliendi sessioone sama gruppi kuuluva serveriga. Saadaval on kolm meetodit: âcookieâ â andmete edastamine valitud kaudu Cookie; ârouteâ â proksiserver mÀÀrab kliendile marsruudi esimese pĂ€ringu saamisel; âlearnâ â nginx analĂŒĂŒsib ĂŒlesvoolu serverilt saadud vastuseid ja mĂ€letab serveri algatatud sessioone. Sidumise seadistamiseks lisati âupstreamâ ploki âhttpâ moodulis juhend âstickyâ, ja âserverâ juhendisse lisati parameetrid ârouteâ ja âdrainâ. serveris Lisatud on juhend âearly_hintsâ ja realiseeritud on HTTP-ood 103 toe prokside ja gRPC tagastustes. Ood 103 vĂ”imaldab informeerida klienti mĂ”ningate HTTP-pealkirjade sisust kohe pĂ€rast pĂ€ringut, oodates, kuni server tĂ€idab kĂ”ik seotud pĂ€ringute operatsioonid ja alustab sisu edastamist. Samamoodi saab edastada vihjeid seotud elemendist, mis vĂ”ivad olla eelnevalt laaditud (nĂ€iteks CSS ja JavaScripti lingid, mida lehelt kasutatakse). Saades teavet nende ressursside kohta, hakkab brauser nende laadimist tegema, oodates peamise lehe edastamise lĂ”ppu, mis vĂ”imaldab vĂ€hendada kogu pĂ€ringute töötlemise aega.
- Lisatud on juhend âssl_certificate_compressionâ sertifikaadi squeeze juhtimise jaoks.
- Lisatud on direktiivid add_header_inherit ja add_trailer_inherit, mis vĂ”imaldavad muuta add_header ja add_trailer direktiivides mÀÀratud vÀÀrtuste pĂ€rimise reegleid. Parameeter âoffâ tĂŒhistab vÀÀrtuste pĂ€rimise, samas kui parameeter âmergeâ lubab seniseid vÀÀrtusi lisada praegustele tasemetele.
- Juhendisse âgeoâ on lisatud parameeter âvolatileâ, mis keelab muutuja vahemĂ€lu. Maske on lubatud kasutada juhendis âincludeâ, mis on mÀÀratud âgeoâ ploki sees. TLS-sertifikaatide.
- Lisa direktiiv max_headers, mis piirab HTTP-pealkirjade maksimaalset arvu pĂ€ringus. Kui piirĂŒletus toimub, tagastatakse viga 400 (Bad Request). VĂ”imalus on kantud FreeNginx-ist.
- Lisatud on muutujad $request_port ja $is_request_port. Esimene muutuja sisaldab pordi numbrit URI komponendist vĂ”i âHostâ pealkirjast, teine sisaldab â:â, kui muutuja $request_port ei ole tĂŒhi.
- Lisatud on muutujad $ssl_sigalg ja $ssl_client_sigalg, mis sisaldavad digitaalallkirja loomise algoritmi nime TLS-ĂŒhenduse jaoks.
- âUpstreamâ plokis on vaikimisi aktiveeritud juhend âkeepaliveâ. âKeepaliveâ juhendisse, mida kasutatakse âupstreamâ plokis, on lisatud parameeter âlocalâ. Kui see parameeter on mÀÀratud, ei jagata ĂŒhte ĂŒhendust ĂŒhise upstream-serveriga, mis on mainitud erinevates asukoha ja serveri plokkides; igas plokis hoitakse eraldi ĂŒhendust upstreamiga.
- ProxireĆŸiimis kasutamisel on vaikevalik protokolli versioon HTTP/1.1, keeplivi reĆŸiimi kaasamisega (ngx_http_proxy_module moodulis on vaikimisi lubatud keeplivi tugi ja vÀÀrtuseks on mÀÀratud â1.1â juhendis âproxy_http_versionâ ning vaikimisi on peatatud pealkirja âConnectionâ saatmine).
- Pakutud on vĂ”imalus laadida krĂŒptograafilisi vĂ”tmeid riistvarastokenitest, kasutades teenusepakkujana OpenSSL teeki.
- Moduuli ngx_http_proxy on lisatud HTTP/2 protokolli tugi, mis vÔimaldab kasutada HTTP/2 backend'ide poole pöördumisel.
- Rakendatud on vĂ”imalus laadida krĂŒptograafilisi vĂ”tmeid riistvaralistest tokenitest, kasutades teenusepakkujana OpenSSL teeki.
- QUIC-protokolli rakendusse on lisatud 0-RTT reĆŸiimi tugi, mis on saadaval sĂŒsteemides, kus on OpenSSL 3.5.1 ja uuemad versioonid.
- Lisatud on vĂ”imalus koguda koos AWS-LC krĂŒptograafia raamatukoguga, mida arendab Amazon.
- TLSv1.3 sertifikaatide tihendamine on vaikimisi keelatud.
- Tagatud on ĂŒhilduvus OpenSSL 4.0 raamatukoguga.
Samuti tasub mĂ€rkida FreeNginx 1.30.0 versiooni vĂ€ljaandmist, mis arendab Nginxi forki. Forki arendab Maxim Dunin, ĂŒks Nginxi vĂ”tme arendajatest. FreeNginx on positsioneeritud kui mittetulunduslik projekt, mis tagab Nginxi koodibaasi arendamise ilma ettevĂ”tte sekkumiseta. FreeNginxi kood on jĂ€tkuvalt kergesti kĂ€ttesaadav BSD litsentsi alusel. FreeNginx 1.30 haru muudatuste hulka kuuluvad: TLS laienduse ECH (Encrypted Client Hello) tugi; parandatud limit_rate direktiivi töötlemine; lisatud send_min_rate ja client_body_min_rate direktiivid; vĂ”imalus piirata ĂŒhenduste arvu ja pĂ€ringute intensiivsust postiteenuste proksis; GeoIP2 andmebaasi tugi GeoIP moodulis; tĂ€iendatud XSLT mooduli kaitset.
Allikas: opennet.ru
