Pas një vit zhvillimi, u publikua dega e re stabile e serverit HTTP me përformancë të lartë dhe proxy-serverit të shumëprotokollit nginx 1.30.0, e cila përfshin ndryshimet e grumbulluar në degën kryesore 1.29.x. Në të ardhmen, të gjitha ndryshimet në degën e stabilizuar 1.30 do të lidhen me eliminimin e gabimeve serioze dhe dobësive të sigurisë. Së shpejti do të formohet dega kryesore nginx 1.31, ku do të vazhdojë zhvillimi i mundësive të reja. Për përdoruesit e zakonshëm, të cilët nuk kanë për qëllim të sigurojnë kompatibilitet me module të jashtme, rekomandohet të përdorin degën kryesore, mbi të cilën çdo tre muaj formohen lëshime të produktit tregtar Nginx Plus. Kodi nginx është shkruar në gjuhën C dhe shpërndahet nën licencën BSD.
Sipas raportit tĂ« shkurtit tĂ« kompanisĂ« Netcraft, nĂ«n menaxhimin e nginx operojnĂ« rreth 321 milion faqe (njĂ« vit mĂ« parĂ« 245 milion, dy vite mĂ« parĂ« â 243 milion, tre vite mĂ« parĂ« 289 milion). Nginx pĂ«rdoret nĂ« 16.08% tĂ« tĂ« gjitha faqeve aktive (njĂ« vit mĂ« parĂ« 17.89%, dy vite mĂ« parĂ« 18.15%, tre vite mĂ« parĂ« 18.94%), qĂ« pĂ«rfaqĂ«son vendin e dytĂ« nĂ« popullaritet nĂ« kĂ«tĂ« kategori (pjesa e Apache Ă«shtĂ« 13.27% (njĂ« vit mĂ« parĂ« 16.03%, dy vite mĂ« parĂ« 20.09%, tre vite mĂ« parĂ« 20.52%), Cloudflare â 20.62% (17.81%, 14.12%, 11.32%), Google â 10.65% (9.89%, 10.41%, 9.89%).
Duke shqyrtuar tĂ« gjitha faqet, nginx ruan udhĂ«heqjen dhe pĂ«rbĂ«n 22.65% tĂ« tregut (njĂ« vit mĂ« parĂ« 20.48%, dy vite mĂ« parĂ« â 22.31%, tre vite 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Ă« milion faqeve mĂ« tĂ« vizituara nĂ« botĂ«, nginx mban vendin e dytĂ« me njĂ« pjesĂ« tĂ« tregut prej 19.85% (njĂ« vit mĂ« parĂ« 20.37%, dy vite mĂ« parĂ« 20.63%, tre vite mĂ« parĂ« 21.37%). Vendi i parĂ« mbahet nga 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 nga një milion faqet më të vizituara (në prillin e vitit të kaluar ky tregues ishte 33.8%, në vitin e mëparshëm - 34.3%). Pjesa e Apache ka rënë nga 26.3% në 23.9% në një vit, pjesa e Microsoft IIS ka rënë nga 4% në 3.4%, dhe pjesa e Caddy nga 0.3% në 0.2%. Pjesa e Node.js është rritur nga 4.4% në 6.0%, dhe pjesa e LiteSpeed nga 14.6% në 15.2%.
Përmirësimet më të dukshme të shtuara gjatë formimit të degës kryesore 1.29.x:
- Shto u shtua mbështetje për TLS-zhgjidhjen ECH (Encrypted ClientHello), e cila vazhdon zhvillimin e zgjidhjes ESNI (Encrypted Server Name Indication) dhe përdoret për të enkriptuar informacionin mbi parametrat e seancave TLS, siç është emri i domainit të kërkuar. Diferenca kryesore ndërmjet ECH dhe ESNI është se në ECH në vend të enkriptimit në nivelin e fushave individuale, të gjithë mesazhi TLS ClientHello enkriptohet krejtësisht, duke lejuar parandalimin e rrjedhave përmes fushave që nuk përfshihen nga ESNI, siç është fusha PSK (Pre-Shared Key). Përdorimi i ECH aktivizohet përmes specifikimit në direktivën "ssl_ech_file" të skedarit të konfigurimit ECHConfig në formatin PEM. Mbështetje është e disponueshme me ndihmën e ndërtimeve OpenSSL me ECH.
- Shtohet mbështetje për protokollin Multipath TCP (MPTCP), duke lejuar dërgimin e paketave në të njëjtën kohë përmes disa rrugëve përmes ndërfaqeve të ndryshme të rrjetit. Për aktivizimin në direktivën "listen", është shtuar një parametr "multipath".
- Shtohet mundĂ«sia e lidhjes sĂ« seancave tĂ« klientĂ«ve me serverĂ«t e njĂ«jtĂ« nĂ« grup. JanĂ« tĂ« disponueshme tre metoda: "cookie" â transmetimi i tĂ« dhĂ«nave mbi zgjedhjen pĂ«rmes njĂ« Cookie tĂ« caktuar; "route" â serveri i prokurorĂ«ve cakton njĂ« rrugĂ« pĂ«r klientin pasi tĂ« marrĂ« kĂ«rkesĂ«n e parĂ«; "learn" â nginx analizon pĂ«rgjigjet nga serveri upstream dhe kujton seancat e filluara nga serveri. PĂ«r konfigurimin e lidhjes Ă«shtĂ« shtuar direktiva "sticky" nĂ« bllokun "upstream" tĂ« modulit "http", dhe nĂ« direktivĂ«n "server" janĂ« shtuar parametrat "route" dhe "drain". server Shtohet direktiva "early_hints" dhe Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r kodin HTTP 103 nĂ« pĂ«rgjigjet nga backend-et proxy dhe gRPC. Kodi 103 lejon informimin e klientit mbi pĂ«rmbajtjen e disa titujve HTTP menjĂ«herĂ« pas kĂ«rkesĂ«s, pa pritur qĂ« serveri tĂ« pĂ«rfundojĂ« tĂ« gjitha operacionet e lidhura me kĂ«rkesĂ«n dhe tĂ« fillojĂ« dorĂ«zimin e pĂ«rmbajtjes. NĂ« tĂ« njĂ«jtĂ«n mĂ«nyrĂ«, mund tĂ« jepen sugjerime mbi elementĂ«t e lidhur me faqen qĂ« po dorĂ«zohet, tĂ« cilĂ«t mund tĂ« parashikohen pĂ«r ngarkim (p.sh., mund tĂ« jepen lidhje pĂ«r CSS dhe JavaScript tĂ« pĂ«rdorura nĂ« faqe). Pas marrjes sĂ« informacionit mbi burimet e tilla, shfletuesi fillon ngarkimin e tyre pa pritur pĂ«rfundimin e dorĂ«zimit tĂ« faqes kryesore, duke lejuar tĂ« shkurtimi i kohĂ«s totale tĂ« pĂ«rpunimit tĂ« kĂ«rkesĂ«s.
- Shtohet direktiva max_headers, e cila kufizon numrin maksimal të titujve HTTP në kërkesë. Në rast se kufiri kalon, kthehet një gabim 400 (Bad Request). Kjo mundësi është transferuar nga FreeNginx.
- Shtohen drejtat add_header_inherit dhe add_trailer_inherit, të cilat lejojnë të ndryshojnë rregullat e trashëgimisë së vlerave të caktuara në drejtat add_header dhe add_trailer. Parametri "off" anullon trashëgiminë e vlerave, ndërsa parametri "merge" përfshin shtimin e vlerave nga niveli i mëparshëm në vlerat në nivelin aktual.
- ĂshtĂ« shtuar direktiva 'ssl_certificate_compression' pĂ«r menaxhimin e kompresimit TLS-sertifikata.
- Shtohet direktiva "max_headers", e cila kufizon numrin maksimal të titujve HTTP në kërkesë. Në rast se kufiri kalon, kthehet një gabim 400 (Bad Request). Kjo mundësi është transferuar nga FreeNginx.
- Shtohen variablat $request_port dhe $is_request_port. Variabli i parë përmban numrin e portit nga komponenti i URI-së ose nga header-i "Host", ndërsa i dyti përmban ":" nëse variabli $request_port nuk është bosh.
- Shtohen variablat $ssl_sigalg dhe $ssl_client_sigalg, të cilët përmbajnë emrin e algoritmit të krijimit të nënshkrimit digjital për lidhjen TLS.
- NĂ« direktivĂ«n «geo» Ă«shtĂ« shtuar parametrin «volatile», i cili çaktivizon cache-nĂ« e variablit. ĂshtĂ« e lejuar tĂ« pĂ«rdoren maska nĂ« direktivĂ«n «include», e cila Ă«shtĂ« caktuar brenda bllokut «geo».
- Në bllokun «upstream» është aktivizuar si parazgjedhje direktiva «keepalive». Në direktivën «keepalive», e cila përdoret në bllokun «upstream», është shtuar parametri «local». Nëse përcaktohet ky parametër, në vend të ndarjes së një lidhjeje të përbashkët me serverin upstream të përmendur në blloqe të ndryshme location dhe server, mbështetet një lidhje e veçantë për çdo bllok me upstream.
- Kur përdoret në mënyrën proxy, parazgjedhja është vendosur në versionin e protokollit HTTP/1.1 me aktivizimin e mënyrës keep-alive (në moduln ngx_http_proxy_module, mbështetje për keep-alive është aktivizuar si parazgjedhje dhe është vendosur vlera «1.1» në direktivën «proxy_http_version» dhe dërgimi i titullit «Connection» është ndaluar si parazgjedhje).
- Në moduln ngx_http_proxy është shtuar mbështetje për protokollin HTTP/2, që e lejon përdorimin e HTTP/2 kur kontaktohet me backend-et.
- ĂshtĂ« ofruar mundĂ«sia e ngarkimit tĂ« çelĂ«save kriptografikĂ« nga tokenĂ«t e harduerit, duke pĂ«rdorur bibliotekĂ«n OpenSSL si ofrues.
- Në realizimin e protokollit QUIC është shtuar mbështetje për modin 0-RTT, i disponueshëm në sisteme me OpenSSL 3.5.1 dhe lëshime më të reja.
- ĂshtĂ« shtuar mundĂ«sia e ndĂ«rtimit me bibliotekĂ«n kriptografike AWS-LC, e zhvilluar nga kompania Amazon.
- Në mënyrë default, është e çaktivizuar kompresimi i certifikatave TLSv1.3.
- ĂshtĂ« siguruar pĂ«rputhshmĂ«ria me bibliotekĂ«n OpenSSL 4.0.
Në veçanti, mund të veçohet publikimi i versionit të projektit FreeNginx 1.30.0, që zhvillon fork-in e Nginx. Zhvillimi i fork-ut po drejtohet nga Maksim Dunin, një nga zhvilluesit kyç të Nginx. FreeNginx pozicionohet si një projekt jo-fitimprurës që siguron zhvillimin e bazës së kodit të Nginx pa ndërhyrje korporatash. Kodi i FreeNginx vazhdon të ofrohet nën licencën BSD. Mes ndryshimeve në degën FreeNginx 1.30: është shtuar mbështetje për zgjerimin e 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ë realizuar mundësia e kufizimit të numrit të lidhjeve dhe intensitetit të kërkesave në proxy-n e postës; është shtuar mbështetje për DB GeoIP2 në moduln GeoIP; është forcuar mbrojtja e modulit XSLT.
Burimi: opennet.ru
