PĂ€rast aasta arengut on avaldatud uus stabiilne versioon kĂ”rge jĂ”udlusega HTTP-serverist ja mitme protokolli proxy'st nginx 1.28.0, mis sisaldab muudatusi, mis on koondatud pĂ”hiversioonist 1.27.x. Edaspidi seostatakse kĂ”ik muudatused stabiilses versioonis 1.28 tĂ”siste vigade ja haavatavuste kĂ”rvaldamisega. Peagi formeeritakse pĂ”hiversioon nginx 1.29, kus jĂ€tkub uute vĂ”imaluste arendamine. Tavalistele kasutajatele, kellel pole eesmĂ€rki tagada ĂŒhilduvus kolmandate osapoolte moodulitega, soovitatakse kasutada pĂ”hiversiooni, mille alusel tehakse kaubanduslikku toodet Nginx Plus iga kolme kuu tagant.
Netcrafti mĂ€rtsi aruande kohaselt töötab nginxiga umbes 245 miljonit veebisaiti (aasta tagasi 243 miljonit, kaks aastat tagasi 289 miljonit). Nginx on kasutusel 17,89% kĂ”igist aktiivsetest veebisaitidest (aasta tagasi 18,15%, kaks aastat tagasi 18,94%), mis vastab selle kategooria populaarsuse 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 sellele, et kĂ”ikide veebisaitide seas, hoiab nginx turuliidrina 20,48% turust (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 LuaJIT platvorm) â 9,36% (7,93%, 7,94%).
Miljoni kĂ”ige kĂŒlastatuma veebisaidi seas maailmas, saavutab nginx teise koha osakaaluga 20,37% (aasta tagasi 20,63%, kaks aastat tagasi 21,37%). Esimese koha 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 nginxit 33,8% selle miljoni kĂ”ige kĂŒlastatumas veebisaidil (eelmise aasta aprillis oli see nĂ€itaja 34,3%, eelmisel aastal 34,5%). Apache osakaal on aasta jooksul langenud 30,1%-lt 26,3%-ni ja Microsoft IIS osakaal on langenud 5%-lt 4%-ni. Node.js osakaal on suurenenud 3,2%-lt 4,4%-le ja LiteSpeed osakaal 12,9%-lt 14,6%-le.
KÔige mÀrgatavamad tÀiustused, mis on lisatud pÔhiversiooni 1.27.x moodustamise kÀigus:
- QUIC protokolli kasutavate ĂŒhenduste jaoks on lisatud CUBIC (RFC 9438) vĂ”rguĂŒlesehitusalgoritmi tugi, mille töö pĂ”hineb akna suuruse jĂ€rk-jĂ€rgulisel suurendamisel kadudeni, mille jĂ€rel akna suurus naaseb kaotuse eelnevale vÀÀrtusele. Testide tulemused nĂ€itavad, et CUBIC'i kasutamine vĂ€hendas 500 MB faili edastamise aega 24% vĂ”rra 40 ms latentsuse ja 750K BDP (Bandwidth Delay Product) korral ning 73% vĂ”rra 100 ms latentsuse ja 9M BDP korral.
- Stream moodulisse on lisatud toe tugi klientide sertifikaatide tĂŒhistamise kontrollimiseks kasutades protokolli OCSP (Online Certificate Status Protocol).
- Moodulis stream on rakendatud tuge OCSP Stapling sertifikaatide tĂŒhistamise kontrollimise tehnikale, mille keskmes on see, et TLS-ĂŒhenduse sĂ”lmimisel edastatakse sertifitseerimiskeskuse kinnitatud OCSP vastus serveri poolt, mis teenindab veebisaiti, ilma et oleks vaja otsest pöördumist sertifitseerimiskeskuse poole.
- Konfiguratsiooni kĂ€ivitamisel ja uuendamisel on rakendatud vahemĂ€lu SSL-sertifikaadid, vĂ”tmete ja CRL (sertifikaadi tĂŒhistamisloendi).
- On lisatud funktsioone, et vÀhendada ressursi tarbimist ja vÀhendada CPU koormust TLS-i kasutamisel konfiguratsioonides, kus on palju serveri ja asukoha blokke. Lisatud muudatused vÔimaldavad, selle asemel et luua iga konfiguratsiooni ploki jaoks eraldi SSL-i konteksti (SSL_CTX OpenSSL-is), kasutada olemasolevat SSL-i konteksti vanemast plokkist.
- Direktiivis âssl_client_certificateâ on tagatud toetus sertifikaatidele, millel on tĂ€iendav teave.
- Kliendi SSL-sertifikaatide kontrollimiseks ei ole direktiiv âssl_client_certificateâ enam kohustuslik.
- Moodulisse ngx_mail_proxy_module on lisatud SmarterMail erimooduli IMAP LOGIN tugi, mis ei sisalda CAPABILITY vastust.
- ngx_http_proxy_module moodulisse on lisatud direktiiv âproxy_pass_trailersâ, mis lubab edastada pealkirjade vĂ€ljad vastuse lĂ”pus proxied serverilt kliendile.
- Direktiivile «server», mida kasutatakse plokis «upstream», on lisatud parameetri «resolve» tugi, mis vÔimaldab jÀlgida sama domeeninime muudatusi. IP-aadressid ning automaatne ploki «upstream» konfiguratsiooni uuendamine 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'i moodulis on lubatud IPv6 aadresside mÀÀramine ruudustikes ilma portide numbriteta.
- Lisatud direktiiv âkeepalive_min_timeoutâ, mis mÀÀrab aja, mille jooksul nginx ei sulge kliendi keep-alive ĂŒhendust.
- Vaike seadistuses on protokollid TLSv1 ja TLSv1.1 keelatud.
- Lahendatud on probleemid, mis pÔhjustasid konfiguratsioonifailide pika laadimise sama TLS-sertifikaatide, vÔtmete ja sertifitseerimiskeskuste loendi korduva parsimise tÔttu. Konfiguratsiooni taaskÀivitamine on kiirem, kuna kordumatud TLS-objektid, nagu sertifikaadid, vÔtmed ja CRL-d, on taaskasutatavad. Objektide pÀrimise keelamiseks konfiguratsiooni uuendamisel on lisatud direktiiv "ssl_object_cache_inheritable".
- Lisa on vahetus sertifikaatide ja vĂ”tmete vahemĂ€lu, mis laaditi ĂŒles muutujaid kasutades direktiivides (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, salvestuste kehtivuse aja ja mittekasutatavate salvestuste puhastamise aja. NĂ€iteks: âssl_certificate_cache max=1000 inactive=20s valid=1m;â.
- Pikaajaliste pÀringute mÀlu tarbimist on vÀhendatud konfiguratsioonides, kus kasutatakse direktiive "gzip", "gunzip", "ssi", "sub_filter" vÔi "grpc_pass".
- SSL-i jagatud mÀlus vahepealsete seansside maksimaalne suurus on suurenenud 8192-ni.
- C raamatukoguga on nĂŒĂŒd parem koostöö.
- Teostasime jÔudluse optimeerimise ja vigade kÔrvaldamise HTTP/3 rakenduses.
Lisaks soovime mĂ€rkida FreeNginx 1.28.0 projekti vĂ€ljaandmist, mis arendab Nginx'i hargnevat varianti. Fork'i arendab Maksim Dunin, ĂŒks Nginx'i peamisi arendajaid. FreeNginx positsioneeritakse kui mittetulunduslik projekt, mis tagab Nginx'i koodibaasi arenduse ilma ettevĂ”ttesisese sekkumiseta. FreeNginx 1.28 haru spetsiifilised muudatused on:
- Direktiivi "pid" parameeter "off", mis keelab PID-faili loomise.
- Veateadete logi kirjutamise intensiivsuse piiramine, et kaitsta logi tĂŒĂŒpiliste teadete tĂ€itumise eest.
- Multipath TCP toetamiseks on implementitud multipath parameeter direktiivis listen.
- Toetatakse HTTP-pealkirja "Age", et mÀÀrata vahemÀlu kirje eluiga.
- Mail_proxy moodulisse on lisatud autentimismeetodid XOAUTH2 ja OAUTHBEARER.
Allikas: opennet.ru
