Pas një vit zhvillimi, është publikuar dega e re stabile e serverit HTTP me performancë të lartë dhe serverit proxy multilateral nginx 1.30.0, e cila përmban ndryshime të akumuluara në degën kryesore 1.29.x. Në të ardhmen, të gjitha ndryshimet në degen stabile 1.30 do të përqendrohen në eliminimin e gabimeve të rënda dhe vulnerabiliteteve. Së shpejti do të formohet dega kryesore nginx 1.31, 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ë obligim për të siguruar përputhshmërinë me modulet e palëve të treta, rekomandohet të përdorin degën kryesore, mbi të cilën për çdo tre muaj formohen lëshime të produktit komercial Nginx Plus. Kodi i nginx është shkruar në gjuhën C dhe shpërndahet nën licencën BSD.
Sipas raportit tĂ« shkurtit nga kompania Netcraft, nĂ«n menaxhimin e nginx funksionojnĂ« rreth 321 milion faqe interneti (njĂ« vit mĂ« parĂ« 245 milion, dy vjet mĂ« parĂ« â 243 milion, tre vjet mĂ« parĂ« 289 milion). Nginx pĂ«rdoret nĂ« 16.08% tĂ« tĂ« gjitha faqeve aktive (njĂ« vit mĂ« parĂ« 17.89%, dy vjet mĂ« parĂ« 18.15%, tre vjet mĂ« parĂ« 18.94%), çka e rendit nĂ« vendin e dytĂ« pĂ«r popullaritet nĂ« kĂ«tĂ« kategori (pjesa e Apache Ă«shtĂ« 13.27% (njĂ« vit mĂ« parĂ« 16.03%, dy vjet mĂ« parĂ« 20.09%, tre vjet mĂ« parĂ« 20.52%), Cloudflare â 20.62% (17.81%, 14.12%, 11.32%), Google â 10.65% (9.89%, 10.41%, 9.89%).
Kur shqyrtohen tĂ« gjitha faqe interneti, nginx mban lidershipin dhe zĂ« 22.65% tĂ« tregut (njĂ« vit mĂ« parĂ« 20.48%, dy vjet mĂ« parĂ« â 22.31%, tri vjet mĂ« parĂ« â 25.94%), ndĂ«rsa pjesa e Apache Ă«shtĂ« 12.19% (16.03%, 20.17%, 20.58%), Cloudflare â 15.27% (12.87%, 11.24%, 10.17%), OpenResty (platforma e bazuar nĂ« nginx dhe LuaJIT) â 8.01% (9.36%, 7.93%, 7.94%).
Mes njĂ« milioni faqeve mĂ« tĂ« vizituara nĂ« botĂ«, nginx zĂ« vendin e dytĂ« me njĂ« pjesĂ« 19.85% (njĂ« vit mĂ« parĂ« 20.37%, dy vjet mĂ« parĂ« 20.63%, tri vjet mĂ« parĂ« 21.37%). Vendi i parĂ« mban Cloudflare â 26.84% (22.32%, 22.59%, 21.62%). Pjesa e Apache httpd â 15.84% (17.95%, 20.09%, 21.18%). 
Sipas W3Techs, nginx përdoret në 32.8% të faqeve të internetit nga milion faqet më të vizituara (në prill të vitit të kaluar ky tregues ishte 33.8%, vitin e kaluar 34.3%). Pjesa e Apache gjatë vitit ka rënë nga 26.3% në 23.9%, pjesa e Microsoft IIS ka rënë nga 4% në 3.4%, ndërsa pjesa e Caddy ka rënë nga 0.3% në 0.2%. Pjesa e Node.js është rritur nga 4.4% në 6.0%, dhe pjesa e LiteSpeed është rritur nga 14.6% në 15.2%.
Përmirësimet më të dukshme të shtuara gjatë formimit të degës kryesore 1.29.x:
- Shtuar mbështetje për zgjatimin TLS ECH (Encrypted ClientHello), që vijon zhvillimin e zgjatimit ESNI (Encrypted Server Name Indication) dhe përdoret për të enkriptuar informacionin mbi parametrat e seancave TLS, si emri i kërkuar i domain-it. Dallimi kryesor midis ECH dhe ESNI është se në ECH të gjithë mesazhi TLS ClientHello enkriptohet në vend të enkriptimit të fushave të veçanta, çka lejon bllokimin e rrjedhjeve përmes fushave që nuk mbulohen nga ESNI, si fusha PSK (Pre-Shared Key). Përdorimi i ECH aktivizohet përmes specifikimit në drejtorinë "ssl_ech_file" të skedarit të konfigurimit ECHConfig në formatin PEM. Mbështetja është e disponueshme në përdorimin e ndërtimeve të OpenSSL me ECH.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r protokollin Multipath TCP (MPTCP), qĂ« lejon dorĂ«zimin e paketave njĂ«kohĂ«sisht pĂ«rmes disa rrugĂ«ve nĂ«pĂ«rmjet interfaccave tĂ« ndryshme tĂ« rrjetit. PĂ«rfshihet parametri 'multipath' nĂ« direktivĂ«n 'listen'.
- Shtuar mundĂ«sia pĂ«r tĂ« lidhur sesionet e klientĂ«ve nĂ« tĂ« njĂ«jtat serverĂ« brenda grupit. JanĂ« nĂ« dispozicion tri metoda: "cookie" â transmetimi i tĂ« dhĂ«nave mbi zgjedhjen pĂ«rmes Cookie; "route" â serveri i proxy-t cakton njĂ« rrugĂ« pĂ«r klientin me marrjen e kĂ«rkesĂ«s sĂ« parĂ«; "learn" â nginx analizojnĂ« pĂ«rgjigjet nga serveri upstream dhe memorizon sesionet e filluara nga serveri. PĂ«r konfigurimin e lidhjes nĂ« bllokun "upstream" tĂ« modulit "http" Ă«shtĂ« shtuar direktiva "sticky", dhe nĂ« direktivĂ«n "server" janĂ« shtuar parametrat "route" dhe "drain". serveri nĂ«pĂ«rmjet Cookie-it tĂ« shĂ«nuar; «route» â serveri proxy iu cakton njĂ« rrugĂ« klientit kur merr kĂ«rkesĂ«n e parĂ«; «learn» â nginx analizon pĂ«rgjigjet nga serveri upstream dhe memorizon seancat e nisura nga serveri. PĂ«r tĂ« konfiguruar ngjashmĂ«rinĂ«, Ă«shtĂ« shtuar direktyva «sticky» nĂ« bllokun «upstream» tĂ« modulit «http», ndĂ«rsa parametrat «route» dhe «drain» janĂ« shtuar nĂ« direktyvĂ«n «server».
- E shtuara direktiva «early_hints» dhe është zbatuar mbështetje për kodin HTTP 103 në përgjigjet nga backend-et proxy dhe gRPC. Kodi 103 lejon që klienti të informohet për përmbajtjen e disa header-eve HTTP menjëherë pas kërkesës, pa pritur që serveri të kryejë të gjitha operacionet e lidhura me kërkesën dhe të fillojë dorëzimin e përmbajtjes. Në këtë mënyrë, mund të jepen sugjerime për elementë të lidhur me faqen që po dorëzohet, të cilët mund të ngarkohen paraprakisht (p.sh., mund të jepen lidhje për CSS dhe JavaScript që përdoren në faqe). Duke marrë informacionin për këto burime, shfletuesi fillon ngarkimin e tyre pa pritur përfundimin e dorëzimit të faqes kryesore, duke lejuar kështu që të reduktohet koha totale e përpunimit të kërkesës.
- E shtuara direktivat add_header_inherit dhe add_trailer_inherit, të cilat lejojnë ndryshimin e rregullave të trashëgimisë së vlerave të përcaktuara në direktivat add_header dhe add_trailer. Parametri «off» anulon trashëgiminë e vlerave, ndërsa parametri «merge» përfshin shtimin e vlerave nga niveli i mëparshëm në vlerat në nivelin aktual.
- E shtuara direktiva «ssl_certificate_compression» për menaxhimin e kompresionit Certifikatat TLS.
- Shtuar direktiva max_headers, që kufizon numrin maksimal të HTTP-kapakëve në kërkesë. Kur kalon limitin, kthehet gabimi 400 (Kërkesë e Keqe). Kjo mundësi është transferuar nga FreeNginx.
- Shtesa e variablave $request_port dhe $is_request_port. Variabla e parë përmban numrin e portit nga komponenti URI ose nga kreu "Host", ndërsa e dyta përmban ":" nëse variabla $request_port nuk është e zbrazët.
- Shtesa e variablave $ssl_sigalg dhe $ssl_client_sigalg, që përmbajnë emrin e algoritmit për formimin e nënshkrimit digjital për lidhjen TLS.
- Në direktivën "geo" është shtuar parametri "volatile", i cili çon në çaktivizimin e ruajtjes së variablës. Lejohet përdorimi i maskave në direktivën "include", e cila është e specifikuar brenda bllokut "geo".
- Në bllokun "upstream" është aktivizuar për default direktiva "keepalive". Në direktivën "keepalive", e cila përdoret në bllokun "upstream", është shtuar parametri "local". Kur specifikohet ky parametër, në vend të ndarjes së një lidhjeje për serverin përbashkues upstream, i përmendur në blloqe të ndryshme location dhe server, për çdo bllok mbahet një lidhje e veçantë me upstream.
- Kur përdoret në modin proxy, për default vendoset versioni i protokollit HTTP/1.1 me aktivizimin e modit keep-alive (në modul nga ngx_http_proxy_module mbështetja për keep-alive është aktivizuar për default dhe vlera "1.1" është vendosur në direktivën "proxy_http_version" dhe dërgimi e krejtësisht është ndaluar për default për kreun "Connection").
- Moduli ngx_http_proxy ka është shtuar mbështetje për protokollin HTTP/2, duke lejuar përdorimin e HTTP/2 për komunikimin me backend-et.
- Ofruar mundësia e ngarkimit të çelësave kriptografikë nga tokenët harduerikë, duke përdorur bibliotekën OpenSSL si ofrues.
- Në implementimin e protokollit QUIC është shtuar mbështetje për modin 0-RTT, e disponueshme në sistemet me OpenSSL 3.5.1 dhe lëshime më të reja.
- Shtuar mundësia e ndërtimit me bibliotekën kriptografike AWS-LC, e zhvilluar nga kompania Amazon.
- Për default, është çaktivizuar kompresimi i certifikatave TLSv1.3.
- Siguruar kompatibiliteti me bibliotekën OpenSSL 4.0.
Gjithashtu, mund të përmendet publikimi i versionit të projektit FreeNginx 1.30.0, që zhvillon forkun Nginx. Zhvillimi i forkut 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ërhyrjen e korporatave. Kodi i FreeNginx vazhdon të ofrohet nën licencën BSD. Ndër ndryshimet në degën FreeNginx 1.30: është shtuar mbështetje për zgjerimin TLS ECH (Encrypted Client Hello); është përmirësuar përpunimi i direktivës limit_rate; janë shtuar direktivat send_min_rate dhe client_body_min_rate; është implementuar mundësia për të kufizuar numrin e lidhjeve dhe intensitetin e kërkesave në proksin e postës; është shtuar mbështetje për databazën GeoIP2 në modulun GeoIP; është forcuar mbrojtja e modulit XSLT.
Burimi: opennet.ru
