Lëshimi i nginx 1.26.0 me mbështetje për HTTP/3

Pas një vit zhvillimi, është publikuar dega e re stabile e serverit HTTP me performancë të lartë dhe proxy-it shumëprotokoll nginx 1.26.0, e cila përfshin ndryshimet e grumbulluara në degën kryesore 1.25.x. Në të ardhmen, të gjitha ndyshimet në degën stabile 1.26 do të lidhen me rregullimin e problemeve të rënda dhe të mungesave të sigurisë. Së shpejti 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ë detyrë të sigurojnë kompatibilitetin me modul të palëve të treta, rekomandohet të përdorin degën kryesore, mbi të cilën çdo tre muaj formohen publikime të produktit komercial Nginx Plus.

Sipas raportit të marsit nga kompania Netcraft, nën menaxhimin e nginx funksionojnë rreth 243 milion faqe (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 përket vendit të dytë për popullaritet në këtë kategori (pjesa e Apache përbën 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%). Kur shqyrtohen të gjitha faqeve, nginx ruan udhëheqjen dhe zë 22.31% të tregut (një vit më parë 25.94%, dy vite më parë — 31.13%), ndërsa pjesa e Apache përbën 20.17% (20.58, 23.08%), Cloudflare — 11.24% (10.17, 5.49%), OpenResty (platforma mbi nginx dhe LuaJIT) — 7.93% (7.94%, 8.01%).

Среди миллиона самых посещаемых сайтов в мире доля nginx составляет 20.63% (год назад 21.37%, два года назад 21.79%), Cloudflare — 22.59% (год назад 21.62%), Apache httpd — 20.09% (21.18%). По данным W3Techs nginx используется на 34.3% сайтов из миллиона самых посещаемых, в апреля прошлого года этот показатель составлял 34.5%, позапрошлого — 33.1%. Доля Apache за год снизилась с 32.2% до %30.1, а доля Microsoft IIS снизилась с 5.6% до 4.8%. Доля Node.js увеличилась с 2.4% до 3.2%, а доля LiteSpeed с 11.8% до 12.9%.

Përmirësimet më të dukshme, të shtuar gjatë formimit të degës kryesore 1.25.x:

  • Shtuar moduli ngx_http_v3 me mbështetje eksperimentale për protokollin HTTP/3. Për ndërtimin e modulit është paraparë 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ëkanalizimin e shumë lidhjeve dhe ofron metoda enkripti të barabarta me TLS/SSL. Protokolli është krijuar në vitin 2013 nga Google si një alternativë ndaj lidhjes TCP+TLS për Web, që zgjidh problemet me kohën e gjatë të ngritjes dhe në marrëveshjet në lidhje me TCP, duke eliminuar vonesat gjatë humbjes së paketave në procesin e transmetimit të të dhënave.
  • Është shtuar një direktivë e veçantë «http2» për aktivizimin selektiv të protokollit HTTP/2 në lidhje me serverët (mund të përdoret në blloqe të veçanta «server»). Parametri «http2» në direktivën «listen» është shpallur i vjetruar.
  • Forcuar mbrojtja ndaj aktivitetit anormal të klientëve HTTP/2, veçanërisht ndaj sulmeve DoS të klasës "Rapid Reset", ku krijohet një numër i madh rrjedhash të njëkohshme që reshtohen brenda një lidhjeje HTTP/2. Në konfigurimin e parazgjedhur, këto sulme hasin në kufirin e numrit të kërkesave për lidhjen "keepalive_requests" (pas çdo 1000 kërkesash lidhja do të reshtohet) dhe në kufizimet "limit_req". Për përgjigje më të hershme ndaj bombardimeve të kërkesave përmes një numri të madh rrjedhash, është shtuar një kufizim shtesë, që nuk lejon krijimin e më shumë se 256 (2 * max_concurrent_streams) rrjedhash të reja për çdo cikël të përpunimit të ngjarjeve. Ky kufizim i ri ofron mundësinë të fillojë bllokimin e kërkesave para arritjes së kufirit të përgjithshëm për numrin e rrjedhashve të përkohshme, për shembull, kur rrjedhat përpunohen në mënyrë asinkrone ose reshtohen.
  • Në modulit stream është shtuar mbështetje për serverëve virtualë, konfigurimi i të cilëve caktohet në bllokun «server { … }» përmes drejtpërsëdrejti server_name. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
  • Shtuar moduli i ri ngx_stream_pass_module, i destinuar për kalimin e lidhjeve të pranuara drejtpërdrejt në çdo socket që dëgjon, të 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ë drejtpërsëdrejti listen të modulit stream është realizuar mbështetje për parametrat «deferred» (aktualizon accept të vonuar), «accept_filter» (filtri i lidhjeve hyrëse, i aplikuar përpara thirrjes së funksionit accept) dhe «setfib» (përcaktimi i tabelës së rrugëtimit).
  • Për disa arkitektura ë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 cache-it CPU dhe memories.
  • Përmirësuar menaxhimi i bufferave të përdorur në automatikun e identifikimit të lidhjeve HTTP/2.
  • Rritur performancën e fillimit të konfigurimeve me një numër të madh direktivash "location".
  • Është hequr mbështetja për teknologjinë Server push në HTTP/2.
  • Përkrahja e direktivës "ssl", e cila ishte shpallur e vjetruar, është pezulluar.

Publicimi i stabilizimit të projektit FreeNginx 1.26.0, që zhvillon fork-in e Nginx, është publikuar para dy javësh. Zhvillimi i fork-ut udhëhiqet nga Maksim Dunin, një nga zhvilluesit kryesorë të Nginx. FreeNginx pozicionohet si një projekt jo fitimprurës, që siguron zhvillimin e bazës së kodit të Nginx pa ndërhyrje korporative.

Burimi: opennet.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster