Pas një vit zhvillimi, është publikuar degë e re stabile e serverit HTTP me performancë të lartë dhe serverit proxy shumëprotokollor nginx 1.28.0, e cila ka përmbledhur ndryshimet e grumbulluara në degën kryesore 1.27.x. Më tej, të gjitha ndryshimet në degën e stabilizuar 1.28 do të lidhen me eliminimin e defekteve të rënda dhe vulnerabiliteteve. Së shpejti do të formohet dega kryesore nginx 1.29, në të cilën do të vazhdojë zhvillimi i mundësive të reja. Për përdoruesit e zakonshëm, të cilët nuk kanë nevojë për të siguruar kompatibilitet me module të jashtme, rekomandohet përdorimi i degës kryesore, mbi bazën e së cilës krijohen lëshime të produktit komercial Nginx Plus çdo tre muaj.
Sipas raportit tĂ« marsit nga kompania Netcraft, rreth 245 milion faqe interneti janĂ« nĂ«n menaxhimin e nginx (njĂ« vit mĂ« parĂ« 243 milion, dy vjet mĂ« parĂ« 289 milion). Nginx pĂ«rdoret nĂ« 17.89% tĂ« tĂ« gjitha faqeve aktive (njĂ« vit mĂ« parĂ« 18.15%, dy vjet mĂ« parĂ« 18.94%), qĂ« i pĂ«rputhet vendit tĂ« parĂ« pĂ«r popullaritet nĂ« kĂ«tĂ« kategori (pjesa e Apache Ă«shtĂ« 16.03% (njĂ« vit mĂ« parĂ« 20.09%, dy vjet mĂ« parĂ« 20.52%), Cloudflare â 17.81% (14.12%, 11.32%), Google â 9.89% (10.41%, 9.89%).
Duke shqyrtuar tĂ« gjitha faqet, nginx mbetet nĂ« krye dhe zĂ« 20.48% tĂ« tregut (njĂ« vit mĂ« parĂ« 22.31%, dy vjet mĂ« parĂ« â 25.94%), ndĂ«rsa pjesa e Apache Ă«shtĂ« 16.03% (20.17%, 20.58%), Cloudflare â 12.87% (11.24%, 10.17%), OpenResty (platformĂ« bazuar nĂ« nginx dhe LuaJIT) â 9.36% (7.93%, 7.94%).
Mes njĂ« milion faqeve mĂ« tĂ« vizituara nĂ« botĂ«, nginx zĂ« vendin e dytĂ« me njĂ« pjesĂ« prej 20.37% (njĂ« vit mĂ« parĂ« 20.63%, dy vjet mĂ« parĂ« 21.37%). Vendi i parĂ« mbahet nga Cloudflare â 22.32% (njĂ« vit mĂ« parĂ« 22.59%, dy vjet mĂ« parĂ« 21.62%). Pjesa e Apache httpd â 17.95% (20.09%, 21.18%).
Sipas të dhënave të W3Techs, nginx përdoret në 33.8% të faqeve nga një milion më të vizituara (në prill të vitit të kaluar ky tregues ishte 34.3%, në vitin e kaluar 34.5%). Pjesa e Apache ka rënë nga 30.1% në 26.3% gjatë një viti, ndërsa pjesa e Microsoft IIS ka rënë nga 5% në 4%. Pjesa e Node.js është rritur nga 3.2% në 4.4%, ndërsa pjesa e LiteSpeed është rritur nga 12.9% në 14.6%.
Përmirësimet më të dukshme, të shtuar gjatë formimit të degës kryesore 1.27.x:
- Për lidhjet që përdorin protokollin QUIC, është shtuar mbështetje për algoritmin e menaxhimit të ngarkesës në rrjet CUBIC (RFC 9438), i cili funksionon duke rritur gradualisht madhësinë e dritares së ngarkesës deri në shfaqjen e humbjes së pakove, pas së cilës madhësia e dritares rikthehet në vlerën e fillimit të humbjes. Në testet e kryera, përdorimi i CUBIC ka lejuar të reduktohet koha e transferimit të një skedari prej 500MB me 24% me vonesa 40ms dhe BDP 750K (Bandwidth Delay Product) dhe me 73% me vonesa 100ms dhe BDP 9M.
- Në modulimin e stream është shtuar mbështetje për verifikimin e revokimit të certifikatave të klientëve, duke përdorur protokollin OCSP (Protokolli i Statusit të Certifikatës në Internet).
- Në modulimin e stream është realizuar mbështetje për teknikën e verifikimit të tërheqjes së certifikatave OCSP Stapling, e cila konsiston në atë që, gjatë negociatës së lidhjes TLS, përgjigjja OCSP e vlefësuar nga autoriteti certifikues dërgohet nga serveri që ofron faqen, pa nevojën e një ndërveprimi të drejtpërdrejtë me autoritetin certifikues.
- Në nisjen dhe përditësimin e konfiguracionit, është implementuar mbajtja në kënd certifikatave SSL, çelësave dhe CRL (Lista e Revokimit të Certifikatës).
- Janë shtuar mundësi për të reduktuar konsumimin e burimeve dhe për të zvogëluar ngarkesën në CPU kur përdoret TLS në konfigurime me numër të madh blokesh server dhe location. Ndryshimet e shtuara lejojnë përdorimin e kontekstit SSL të prindit, në vend të krijimit të një konteksti të veçantë SSL (SSL_CTX në OpenSSL) për çdo bllok konfigurimi.
- Direktiva «ssl_client_certificate» ofron mbështetje për certifikatat me informacione shtesë.
- Për të verifikuar certifikatat SSL të klientëve, direktiva «ssl_client_certificate» tani nuk është e detyrueshme.
- Në modul ngx_mail_proxy_module është shtuar mbështetje për modin e IMAP LOGIN specifik për SmarterMail me përgjigje të paetiketuar CAPABILITY.
- Në modulimin ngx_http_proxy_module është shtuar drejtimi «proxy_pass_trailers», i cili lejon kalimin e fushave të titujve në fund të përgjigjes nga serveri i proxy te klienti.
- Në direktivën 'server', të përdorur në bllokun 'upstream', është shtuar mbështetje për parametri 'resolve', i cili përfshin ndjekjen e ndryshimeve adresat IP për emrin e domainit të përdorur dhe përditësimin automatik të konfigurimit të bllokut 'upstream' pa nevojën e rinisjes së nginx në rast të ndryshimit të adresës.
- ĂshtĂ« shtuar mundĂ«sia pĂ«r tĂ« pĂ«rdorur variabla nĂ« direktivat 'proxy_limit_rate', 'fastcgi_limit_rate', 'scgi_limit_rate' dhe 'uwsgi_limit_rate'.
- Në direktivat 'proxy_bind', 'fastcgi_bind', 'grpc_bind', 'memcached_bind', 'scgi_bind' dhe 'uwsgi_bind', si dhe në si adresë klienti në modulimin ngx_http_realip_module, lejohet tregimi i adreseve IPv6 në kllapa pa numër porti.
- Shtuar direktiva «keepalive_min_timeout», e cila përcakton timeout-in, gjatë së cilës nginx nuk do të mbyllë lidhjen keep-alive me klientin.
- Për arsye të parazgjedhura, protokollet TLSv1 dhe TLSv1.1 janë të çaktivizuar.
- JanĂ« zgjidhur problemet me ngarkimin e gjatĂ« tĂ« skedarĂ«ve tĂ« konfigurimit pĂ«r shkak tĂ« rimeçtimit tĂ« tĂ« njĂ«jtit set TLS-certifikatash, çelĂ«sa dhe lista tĂ« autoriteteve certifikuese. ĂshtĂ« pĂ«rshpejtuar rinisja e konfigurimit pĂ«r shkak tĂ« riciklimit tĂ« objekteve TLS qĂ« nuk kanĂ« ndryshuar, siç janĂ« certifikat, çelĂ«sa dhe CRL. PĂ«r tĂ« çaktivizuar trashĂ«giminĂ« e objekteve gjatĂ« pĂ«rditĂ«simit tĂ« konfigurimit, Ă«shtĂ« shtuar direktiva 'ssl_object_cache_inheritable'.
- Shtesë për caching për certifikatat dhe çelësat e ngarkuar duke përdorur variable në direktivat (p.sh., «ssl_certificate /etc/ssl/$ssl_server_name.crt»). Për menaxhimin e cache-it janë shtuar direktivat «ssl_certificate_cache», «proxy_ssl_certificate_cache», «grpc_ssl_certificate_cache» dhe «uwsgi_ssl_certificate_cache». Nëpërmjet këtyre direktivave mund të konfigurohet madhësia maksimale e cache-it, koha e vlefshmërisë së të dhënave dhe koha për pastrimin e të dhënave të pavlefshme. Shembuj: «ssl_certificate_cache max=1000 inactive=20s valid=1m;».
- Konsumimi i memories është reduktuar gjatë përpunimit të kërkesave afatgjata në konfigurimet që përdorin direktivat 'gzip', 'gunzip', 'ssi', 'sub_filter' ose 'grpc_pass'.
- Madhësia maksimale e sesioneve SSL të ruajtura në memorie të ndarë është rritur në 8192.
- ĂshtĂ« krijuar ndĂ«rlidhja me bibliotekĂ«n C Musl.
- ĂshtĂ« bĂ«rĂ« punĂ« pĂ«r optimizimin e performancĂ«s dhe pĂ«r eliminimin e gabimeve nĂ« implementimin e HTTP/3.
Gjithashtu mund të theksohet publikimi i versionit të projektit FreeNginx 1.28.0, që zhvillon fork-un Nginx. Zhvillimi i këtij fork-u po udhëhiqet nga Maksim Dunin, një nga zhvilluesit kryesorë të Nginx. FreeNginx pozicionohet si një projekt jo-komercial, që siguron zhvillimin e kodit të bazës Nginx pa ndërhyrje nga korporatat. Ndër ndryshimet specifike në degën FreeNginx 1.28:
- Parametri «off» në direktivën «pid», që çaktivizon krijimin e skedarit PID.
- Kufizimi i intensitetit të shkruarjeve në logun e gabimeve për të mbrojtur nga mbushja e logut me mesazhe tipike.
- Realizimi i parametrin multipath në direktivën listen për mbështetje të Multipath TCP.
- Mbështetje për titullin HTTP «Age» për të përcaktuar kohën e jetës së regjistrimeve në cache.
- Shtimi i metodave të autentikimit XOAUTH2 dhe OAUTHBEARER në modulën mail_proxy.
Burimi: opennet.ru
