Lëshimi i nginx 1.30.0 dhe forkut FreeNginx 1.30.0

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%). LĂ«shimi i nginx 1.30.0 dhe forkut FreeNginx 1.30.0

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

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster