Nginx 1.26.0 väljalaskmine HTTP/3 toega

Pärast aasta arendust on avaldatud uus stabiilne versioon suure jõudlusega HTTP serverist ja mitme protokolli vahendist nginx 1.26.0, mis hõlmab endas 1.25.x versiooni peamiste harude muudatusi. Edasi viidud muudatused stabiilses harus 1.26 keskenduvad tõsiste tõrgete ja haavatavuste kõrvaldamisele. Varsti luuakse peamine haru nginx 1.27, kus jätkatakse uute võimaluste arendamist. Tavalistele kasutajatele, kellel ei ole vajalik tagada ühilduvust kolmandate isikute moodulitega, soovitatakse kasutada peaharuga, mille alusel tehakse iga kolme kuu tagant Nginx Plusi kaubanduslikke väljaandeid.

Netcrafti märtsikuu aruande kohaselt töötab nginxiga ligikaudu 243 miljonit veebisaiti (aasta tagasi 289 miljonit). Nginxit kasutatakse 18,15% kõigist aktiivsetest saite (aasta tagasi 18,94%, kaks aastat tagasi 20,08%), mis vastab teisele kohale populaarsuse poolest selles kategoorias (Apache osakaal on 20,09% (aasta tagasi 20,52%, kaks aastat tagasi 22,58%), Cloudflare — 14,12% (11,32%, 10,42%), Google — 10,41% (9,89%, 8,89%). Samas, kui vaadata kõiki saite, säilitab nginx liidripositsiooni ja hõivab 22,31% turust (aasta tagasi 25,94%, kaks aastat tagasi — 31,13%), samal ajal kui Apache osakaal on 20,17% (20,58, 23,08%), Cloudflare — 11,24% (10,17, 5,49%), OpenResty (nginx ja LuaJIT põhine platvorm) — 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%.

Tähtsaimad täiustused, mis on lisatud peamise haru 1.25.x koostamise käigus:

  • Lisatud moodul ngx_http_v3 koos eksperimentaalse toega HTTP/3 protokollile. Mooduli kompileerimiseks on ette nähtud valik „—with-http_v3_module“. HTTP/3 määratleb QUIC (Quick UDP Internet Connections) protokolli kasutamise transportimiseks HTTP/2 jaoks. QUIC on UDP protokolli peal kest, mis toetab mitme ühenduse multipleteerimist ja pakub krüpteerimise meetodeid, mis on võrreldavad TLS/SSL-iga. Protokoll loodi 2013. aastal Google'i poolt TCP+TLS alternatiivina, et lahendada TCP-s tekkiva suur viivituste ja ühenduste kokkuleppimise probleem ning kõrvaldada viivitused andmete edastamisel pakettide kadumise korral.
  • Sisse on viidud eraldi direktiiv «http2», mis võimaldab valida HTTP/2 protokolli sisselülitamist serverite konfigureerimisel (võib kasutada eraldi «server» blokides). «http2» parameeter «listen» direktiivis on kuulutatud aegunud.
  • Parandatud kaitset ebatavalise HTTP/2 kliendi tegevuse, sealhulgas Rapid Reset klassi DoS-rünnakute vastu, kus luuakse suur hulk kohe tühistatud vooge ühe HTTP/2 ühenduse raames. Vaikimisi konfiguratsioonis takistavad sellised rünnakud „keepalive_requests“ ühenduse päringute arvu piirdumise (pärast iga 1000 päringut ühendus tühistatakse) ja „limit_req“ piirangud. Varasema reageerimise tagamiseks paljude voogude kaudu päringute koormusele on lisatud täiendav piirang, mis ei luba vaikesätete kohaselt luua rohkem kui 256 (2 * max_concurrent_streams) uut voogu iga sündmuste töötlemise tsükli ajal. Uus piirang võimaldab päringute blokeerimist enne, kui saavutatakse samaaegsete voogude koguarvu üldine piirang, näiteks siis, kui vooge töödeldakse asünkroonselt või tühistatakse.
  • Moduuli stream on lisatud tugi virtuaalservereid, mille konfiguratsioon määratakse plokis «server { … }» direktiivi server_name abil. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
  • Lisatud uus moodul ngx_stream_pass_module, mis on mõeldud vastuvõetud ühenduste edastamiseks otse igasse kuulamise soketisse, mis on seotud selliste moodulitega nagu http, stream ja mail. stream { server { listen 12345 ssl; ssl_certificate domain.crt; ssl_certificate_key domain.key; pass 127.0.0.1:8000; } }
  • Mooduli stream direktiivis listen on rakendatud toetust parameetritele «deferred» (lülitab sisse viivitusega accept), «accept_filter» (sisseande ühenduste filter, mis rakendatakse enne accept funktsiooni kutsumist) ja «setfib» (marsruutimistabeli määramine).
  • Mõne arhitektuuri puhul on rakendatud ploki (cache line) suuruse määramise tuge, mida kasutatakse andmete edastamiseks CPU vahemälu ja mälu vahel.
  • Parandatud on puhversüsteemide haldamist, mida kasutatakse HTTP/2 ühenduste automaatseks määramiseks.
  • Parandatud on konfiguratsioonide käivitamise jõudlust, kus on palju „location“ direktiive.
  • Server push tehnoloogia tugi HTTP/2-s on eemaldatud.
  • Toetamine direktiivi „ssl“, mis oli eelnevalt kuulutatud vananeks, on lõpetatud.

Stabiilne väljaanne FreeNginx projektist 1.26.0, mis arendab Nginxi forki, avaldati kaks nädalat tagasi. Forki arendab Maxim Dunin, üks Nginxi peamisi arendajaid. FreeNginx on positsioneeritud mittetulunduslikuna, tagades Nginxi koodibaasi arenduse ilma ettevõtete sekkumiseta.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster