PĂ€rast aasta arengut on avaldatud uus stabiilne versioon kĂ”rge jĂ”udlusega HTTP-serverist ja mitme protokolli vahendist nginx 1.28.0, mis hĂ”lmab kĂ”iki pĂ”hikoode 1.27.x versioonis kogunenud muudatusi. Edaspidi seondub kĂ”ik stabiilses versioonis 1.28 tĂ”siste vigu ja turvaauke puudutavate muudatustega. Varsti luuakse pĂ”hikoode nginx 1.29, kus jĂ€tkub uute funktsioonide arendamine. Tavalistele kasutajatele, kellel pole vajadust tagada ĂŒhilduvust kolmandate osapoolte moodulitega, soovitatakse kasutada pĂ”hikoode, mille alusel koostatakse iga kolme kuu tagant kaubandusliku toote Nginx Plus versioonid.
MĂ€rtsi aruanne ettevĂ”ttelt Netcraft nĂ€itab, et nginxiga töötab umbes 245 miljonit veebisaiti (aasta tagasi 243 miljonit, kaks aastat tagasi 289 miljonit). Nginx kasutatakse 17,89% kĂ”igist aktiivsetest veebisaitidest (aasta tagasi 18,15%, kaks aastat tagasi 18,94%), mis vastab selle kategooria populaarsuses esikohale (Apache osakaal on 16,03% (aasta tagasi 20,09%, kaks aastat tagasi 20,52%), Cloudflare â 17,81% (14,12%, 11,32%), Google â 9,89% (10,41%, 9,89%).
Vaatamata kĂ”igile veebilehtedele hoiab nginx juhtpositsiooni, omades turuosa 20,48% (aasta tagasi 22,31%, kaks aastat tagasi â 25,94%), samas kui Apache osakaal on 16,03% (20,17%, 20,58%), Cloudflare â 12,87% (11,24%, 10,17%), OpenResty (nginx ja LuaJITil pĂ”hinev platvorm) â 9,36% (7,93%, 7,94%).
Maailma miljoni kĂ”ige kĂŒlastatuma veebilehe seas asub nginx teisel kohal, omades osakaalu 20,37% (aasta tagasi 20,63%, kaks aastat tagasi 21,37%). Esikoha hoiab Cloudflare â 22,32% (aasta tagasi 22,59%, kaks aastat tagasi 21,62%). Apache httpd osakaal on 17,95% (20,09%, 21,18%).
W3Techsi andmetel kasutatakse nginxi 33,8%-l miljonist kĂ”ige kĂŒlastatumast veebilehest (eelmisel aprillil oli see nĂ€itaja 34,3%, ĂŒlemöödunud aastal 34,5%). Apache osakaal on aasta jooksul langenud 30,1%-lt 26,3%-le, samas kui Microsoft IIS osakaal on langenud 5%-lt 4%-le. Node.js osakaal on suurenenud 3,2%-lt 4,4%-le ning LiteSpeed osakaal 12,9%-lt 14,6%-le.
Olulisemad tÀiustused, mis on lisatud pÔhiharude vormimise kÀigus versioonis 1.27.x:
- QUIC-protokolli kasutavatesse ĂŒhendustesse on lisatud CUBIC vĂ”rgu ĂŒlekoormuse juhtimise algoritmi tugi (RFC 9438), mille töö pĂ”hineb akna suuruse jĂ€rkjĂ€rgulisel suurendamisel kuni pakettide kaotamiseni, pĂ€rast mida akna suurus vĂ€hendatakse algsele vÀÀrtusele enne kadumist. Tehtud testide kĂ€igus aitas CUBIC vĂ€hendada 500 MB faili edastusaega 24%, kui viivitus oli 40 ms ja BDP 750K (Bandwidth Delay Product), ning 73%, kui viivitus oli 100 ms ja BDP 9M.
- Modulisse stream on lisatud tugi klientide sertifikaatide tĂŒhistamise staatuse kontrollimiseks kasutades OCSP protokolli (Online Certificate Status Protocol).
- Stream moodulis on rakendatud OCSP Staplingi sertifikaatide tĂŒhistamise kontrolli tehnika, mille olemus seisneb selles, et TLS-ĂŒhenduse loomisel edastab saitide teenindava serveri poolt sertifitseerimisasutuse poolt kinnitatud OCSP vastuse ilma otsese pöördumiseta sertifitseerimisasutuse poole.
- Konfiguratsiooni kĂ€ivitamisel ja vĂ€rskendamisel on rakendatud vahemĂ€lu. SSL-sertifikaate, vĂ”tmete ja CRL-i (sertifikaadi tĂŒhistamise nimekiri).
- Lisatud on vÔimalused ressursikasutuse vÀhendamiseks ja CPU koormuse vÀhendamiseks TLS-i kasutamisel suure arvu serveri ja asukoha plokkidega konfiguratsioonides. Lisatud muudatused vÔimaldavad mitte luua iga konfiguratsiooni ploki jaoks eraldi SSL-i konteksti (SSL_CTX OpenSSLis), vaid kasutada juba olemasolevat SSL-i konteksti vanemast plokist.
- Direktiivis «ssl_client_certificate» on tagatud toetus sertifikaatidele, mis sisaldavad tÀiendavat teavet.
- Kliendi SSL-sertifikaatide kontrollimiseks ei ole direktiiv «ssl_client_certificate» enam kohustuslik.
- ngx_mail_proxy_module moodulisse on lisatud SmarterMailile spetsiifiline IMAP LOGIN reĆŸiimi tugi, millel on tĂ€histamata CAPABILITY vastus.
- ngx_http_proxy_module moodulisse on lisatud direktiiv «proxy_pass_trailers», mis vÔimaldab edastada pealkirjade vÀlju vastuse lÔpus proksieeritud serverilt kliendile.
- Direktiivi «server», mida kasutatakse «upstream» plokkides, on lisatud parameter «resolve», mis hÔlmab seadme muutuste jÀlgimist. IP-aadressid kasutatava domeeninime puhul ja vÔimaldab automaatset «upstream» ploki seadistuse uuendamist ilma nginx'i taaskÀivitamiseta aadressi muutumisel.
- Lisatud on vÔimalus kasutada muutujaid direktiivides «proxy_limit_rate», «fastcgi_limit_rate», «scgi_limit_rate» ja «uwsgi_limit_rate».
- Direktiivides «proxy_bind», «fastcgi_bind», «grpc_bind», «memcached_bind», «scgi_bind» ja «uwsgi_bind», samuti kliendi aadressina ngx_http_realip_module moodulis on lubatud IPv6-aadresse nÀidata ruutkarkassides ilma sadama numbrita.
- Lisatud on direktiiv «keepalive_min_timeout», mis mÀÀratleb ajavahemiku, mille jooksul nginx ei sulge kliendiga keep-alive ĂŒhendust.
- Vaikimisi on protokollid TLSv1 ja TLSv1.1 keelatud.
- Lahendatud probleemid konfiguratsioonifailide pika laadimisega, mis on tingitud sama TLS-sertifikaatide, vÔtmete ja sertifitseerimiskeskuste loendi korduvast parsimist. Konfiguratsiooni taaskÀivitamine on kiirem, kuna uuesti kasutatakse muutumatuid TLS-objekte, nagu sertifikaadid, vÔtmed ja CRL. Objektide pÀrimise keelamiseks konfiguratsiooni uuendamisel on lisatud direktiiv "ssl_object_cache_inheritable".
- Lisatud vahemÀlu sertifikaatide ja vÔtmete jaoks, mis on laaditud direktiivide muutujate abil (nÀiteks "ssl_certificate /etc/ssl/$ssl_server_name.crt"). VahemÀlu haldamiseks on lisatud direktiivid "ssl_certificate_cache", "proxy_ssl_certificate_cache", "grpc_ssl_certificate_cache" ja "uwsgi_ssl_certificate_cache". Nende direktiivide kaudu saab seadistada vahemÀlu maksimaalse suuruse, salvestiste kehtivuse aja ja nÔudmata salvestiste puhastamise aja. NÀiteks: "ssl_certificate_cache max=1000 inactive=20s valid=1m;".
- MÀlu tarbimist on vÀhendatud pikaajaliste pÀringute töötlemisel konfigureerimises, kus kasutatakse direktiive "gzip", "gunzip", "ssi", "sub_filter" vÔi "grpc_pass".
- SSL-i jagatud mÀlus vahekaartide maksimaalne suurus on suurendatud 8192-ks.
- On loodud koostöö Musl C-raamatukoguga.
- Tehtud töö HTTP/3 jÔudluse optimeerimiseks ja vigade kÔrvaldamiseks.
Lisaks vĂ”ib mĂ€rkida, et on avaldatud FreeNginx projekti versioon 1.28.0, mis arendab Nginx forki. Forki arendab Maksim Dunin, ĂŒks Nginxi vĂ”tmearendajatest. FreeNginx positsioneeritakse mittetulunduslikuna, tagades Nginx koodibaasi arendamise ilma ettevĂ”tte sekkumiseta. FreeNginx 1.28 spetsiifilised muudatused hĂ”lmavad jĂ€rgmist:
- Direktiivi «pid» parameeter «off», mis keelab PID-faili loomise.
- Veateadete logisse salvestamise intensiivsuse piiramine, et kaitsta logi tĂŒĂŒpveateadete poolt ĂŒleujutamise eest.
- Parameetri multipath rakendamine direktiivis listen, et toetada Multipath TCP-d.
- HTTP-pealkirja «Age» toetamine, et mÀÀrata vahemÀlu kirje eluea.
- XOAUTH2 ja OAUTHBEARER autentimismeetodite lisamine mail_proxy moodulisse.
Allikas: opennet.ru
