Pas një vit zhvillimi, u publikua dega e re stabile e serverit HTTP me performancë të lartë dhe serverit proxy shumëprotokoll që është nginx 1.26.0, e cila përfshiu ndryshimet e akumuluara në degën kryesore 1.25.x. Në vazhdim, të gjitha ndryshimet në degën e qëndrueshme 1.26 do të lidhen me eliminimin e gabimeve të rënda dhe dobësive. Shpejt do të formohet dega kryesore nginx 1.27, 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ë për detyrë të sigurojnë pajtueshmëri me modul të jashtëm, rekomandohet të përdorin degën kryesore, mbi të cilën çdo tre muaj formohen lëshime të produktit komercial Nginx Plus.
Sipas raportit tĂ« marsit nga kompania Netcraft, rreth 243 milion faqe web janĂ« nĂ« funksion tĂ« nginx (njĂ« vit mĂ« parĂ« 289 milion). Nginx pĂ«rdoret nĂ« 18.15% tĂ« tĂ« gjitha faqeve aktive (njĂ« vit mĂ« parĂ« 18.94%, dy vite mĂ« parĂ« 20.08%), qĂ« i korrespondon vendit tĂ« dytĂ« pĂ«r popullaritet nĂ« kĂ«tĂ« kategori (pjesa e Apache Ă«shtĂ« 20.09% (njĂ« vit mĂ« parĂ« 20.52%, dy vite mĂ« parĂ« 22.58%), Cloudflare â 14.12% (11.32%, 10.42%), Google â 10.41% (9.89%, 8.89%). MegjithatĂ«, kur shqyrtohen tĂ« gjitha faqet, nginx ruan lidershipin dhe zĂ« 22.31% tĂ« tregut (njĂ« vit mĂ« parĂ« 25.94%, dy vite mĂ« parĂ« â 31.13%), ndĂ«rsa pjesa e Apache Ă«shtĂ« 20.17% (20.58, 23.08%), Cloudflare â 11.24% (10.17, 5.49%), OpenResty (platformĂ« e bazuar nĂ« nginx dhe LuaJIT) â 7.93% (7.94%, 8.01%).
NĂ« mesin e njĂ« milioni faqeve mĂ« tĂ« vizituara nĂ« botĂ«, pjesa e nginx arrin 20.63% (njĂ« vit mĂ« parĂ« 21.37%, dy vjet mĂ« parĂ« 21.79%), Cloudflare â 22.59% (njĂ« vit mĂ« parĂ« 21.62%), Apache httpd â 20.09% (21.18%). Sipas tĂ« dhĂ«nave tĂ« W3Techs, nginx pĂ«rdoret nĂ« 34.3% tĂ« faqeve nga milioni mĂ« tĂ« vizituara, ndĂ«rsa nĂ« prillin e vitit tĂ« kaluar ky tregues ishte 34.5%, dhe dy vjet mĂ« parĂ« 33.1%. Pjesa e Apache ra nga 32.2% nĂ« 30.1% gjatĂ« vitit, ndĂ«rsa pjesa e Microsoft IIS ra nga 5.6% nĂ« 4.8%. Pjesa e Node.js u rrit nga 2.4% nĂ« 3.2%, ndĂ«rsa pjesa e LiteSpeed nga 11.8% nĂ« 12.9%.
Përmirësimet më të dukshme, të shtuar gjatë formimit të degës kryesore 1.25.x:
- I Ă«shtĂ« shtuar moduli ngx_http_v3 me mbĂ«shtetje eksperimentale pĂ«r protokollin HTTP/3. PĂ«r ndĂ«rtimin e modulit Ă«shtĂ« parashikuar opsioni "âwith-http_v3_module". HTTP/3 pĂ«rcakton pĂ«rdorimin e protokollit QUIC (Quick UDP Internet Connections) si transport pĂ«r HTTP/2. QUIC Ă«shtĂ« njĂ« shtresĂ« mbi protokollin UDP, qĂ« mbĂ«shtet shumĂ« lidhje dhe siguron metoda enkriptimi, ekuivalente me TLS/SSL. Protokolli Ă«shtĂ« krijuar nĂ« vitin 2013 nga Google si njĂ« alternativĂ« pĂ«r lidhjen TCP+TLS pĂ«r Web, duke adresuar problemet me kohĂ«n e konsiderueshme tĂ« vendosjes dhe negociatĂ«s sĂ« lidhjeve nĂ« TCP dhe duke eliminuar vonesat nĂ« rast humbjeje tĂ« paketave gjatĂ« transmetimit tĂ« tĂ« dhĂ«nave.
- ĂshtĂ« shtuar njĂ« direktivĂ« e veçantĂ« "http2" pĂ«r aktivizimin selektiv tĂ« protokollit HTTP/2 tĂ« lidhur me serverĂ«t (mund tĂ« pĂ«rdoret nĂ« blloqet e veçanta "server"). Parametri "http2" nĂ« direktivĂ«n "listen" Ă«shtĂ« shpallur i vjetruar.
- ĂshtĂ« forcuar mbrojtja ndaj aktiviteteve anormale tĂ« klientĂ«ve HTTP/2, veçanĂ«risht nga sulmet DoS tĂ« klasĂ«s "Rapid Reset", ku krijohen shumĂ« flukse qĂ« ndĂ«rpriten menjĂ«herĂ« nĂ« njĂ« lidhje HTTP/2. NĂ« konfigurimin e parazgjedhur, sulmet e tilla godasin kufirin e numrit tĂ« kĂ«rkesave pĂ«r lidhje "keepalive_requests" (pas çdo 1000 kĂ«rkesash, lidhja do tĂ« ndĂ«rpritet) dhe kufizimet "limit_req". PĂ«r njĂ« reagim mĂ« tĂ« shpejtĂ« ndaj kĂ«rkesave tĂ« shumta pĂ«rmes shumĂ« flukseve, Ă«shtĂ« shtuar njĂ« kufizim shtesĂ«, i cili nuk lejon tĂ« krijohen pĂ«r parazgjedhje mĂ« shumĂ« se 256 (2 * max_concurrent_streams) flukse tĂ« reja pĂ«r çdo cikĂ«l pĂ«rpunimi. Kufizimi i ri lejon fillimin e bllokimit tĂ« kĂ«rkesave para se tĂ« arrihet kufiri i pĂ«rgjithshĂ«m pĂ«r numrin e flukseve tĂ« bashkĂ«kohshme, pĂ«r shembull, kur flukset pĂ«rpunohen asinkronisht ose ndĂ«rpriten.
- Në modul është shtuar mbështetje për stream serverave virtuale, konfigurimi i të cilave përcaktohet në bllokun "server { ⊠}" përmes direktivës server_name. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
- ĂshtĂ« shtuar njĂ« modul i ri ngx_stream_pass_module, i destinuar pĂ«r kalimin e lidhjeve tĂ« pranuara direkt nĂ« çdo socket qĂ« dĂ«gjon, i lidhur me module tĂ« tilla si http, stream dhe mail. stream { server { listen 12345 ssl; ssl_certificate domain.crt; ssl_certificate_key domain.key; pass 127.0.0.1:8000; } }
- Në direktivën listen të modulit stream është implementuar mbështetje për parametrat «deferred» (ndërfut accept të shtyrë), «accept_filter» (filtri i lidhjeve hyrëse i aplikuar para thirrjes së funksionit accept) dhe «setfib» (caktimi i tabelës së rrugëve).
- Për disa arkitekturë është implementuar mbështetje për përcaktimin e madhësisë së bllokut (cache line), që përdoret për transferimin e të dhënave midis caches së CPU-së dhe Memories.
- ĂshtĂ« pĂ«rmirĂ«suar menaxhimi i bufferave qĂ« pĂ«rdoren pĂ«r identifikimin automatik tĂ« lidhjeve HTTP/2.
- ĂshtĂ« rritur performanca e nisjes sĂ« konfigurimeve me numĂ«r tĂ« madh direktivash 'location'.
- ĂshtĂ« hequr mbĂ«shtetje pĂ«r teknologjinĂ« Server push nĂ« HTTP/2.
- ĂshtĂ« ndalur mbĂ«shtetja pĂ«r direktivĂ«n «ssl», e cila ishte shpallur mĂ« parĂ« si e vjetruar.
Lëshimi stabil i projektit FreeNginx 1.26.0, një fork në zhvillim i Nginx, u publikua para dy javësh. Zhvillimin e fork-ut e drejton Maksim Dunin, një nga zhvilluesit kryesorë të Nginx. FreeNginx pozicionohet si një projekt jo-profit, që siguron zhvillimin e kodit të bazës së Nginx pa ndërhyrjen e korporatave.
Burimi: opennet.ru
