Pas 13 muajsh zhvillimi, është prezantuar dega e re stabile e serverit HTTP me performancë të lartë dhe proxy serverit shumëprotokoll nginx 1.22.0, e cila ka përfshirë ndryshimet e grumbulluara në degën kryesore 1.21.x. Në të ardhmen, të gjitha ndryshimet në degën stabile 1.22 do të lidhen me eliminimin e gabimeve serioze dhe vulnerabiliteteve. Shpejt do të formohet dega kryesore nginx 1.23, në të cilën do të vazhdojë zhvillimi i mundësive të reja. Për përdoruesit zakonshëm, të cilët nuk kanë detyrë të sigurojnë përputhshmërinë me module të jashtme, rekomandohet të përdorin degën kryesore, mbi të cilën çdo tre muaj formohen lëshime të produktit komercial Nginx Plus.
Sipas raportit tĂ« prillit tĂ« kompanisĂ« Netcraft, nginx pĂ«rdoret nĂ« 20.08% tĂ« tĂ« gjitha faqeve aktive (njĂ« vit mĂ« parĂ« 20.15%, dy vjet mĂ« parĂ« 19.56%), qĂ« i korrespondon vendit tĂ« dytĂ« nĂ« popullaritet nĂ« kĂ«tĂ« kategori (pjesa e Apache Ă«shtĂ« 22.58% (njĂ« vit mĂ« parĂ« 25.38%), Cloudflare â 10.42% (8.51%), Google â 8.89% (10.09%). NĂ« tĂ« njĂ«jtĂ«n kohĂ«, kur shqyrtohen tĂ« gjitha faqet, nginx mban liderĂ«sinĂ« dhe zĂ« 31.13% tĂ« tregut (njĂ« vit mĂ« parĂ« 35.34%, dy vjet mĂ« parĂ« â 36.91%), ndĂ«rsa pjesa e Apache Ă«shtĂ« 23.08% (25.98%), OpenResty (platformĂ« mbi nginx dhe LuaJIT) â 8.01% (6.55%), Cloudflare â 5.49%, Microsoft IIS â 4% (5.96%).
NĂ« mesin e njĂ« milioni faqeve mĂ« tĂ« vizituara nĂ« botĂ«, pjesa e nginx Ă«shtĂ« 21.79% (njĂ« vit mĂ« parĂ« 23.06%, dy vjet mĂ« parĂ« 25.54%). Aktualisht, rreth 361 milion faqeve janĂ« nĂ«n menaxhimin e nginx (njĂ« vit mĂ« parĂ« 419 milion). Sipas tĂ« dhĂ«nave nga W3Techs, nginx pĂ«rdoret nĂ« 33.5% tĂ« faqeve nga miliona mĂ« tĂ« vizituara, nĂ« maj tĂ« vitit tĂ« kaluar ky tregues ishte 33.8%, ndĂ«rsa dy vjet mĂ« parĂ« â 31.9%. Pjesa e Apache ka rĂ«nĂ« nga 33.8% nĂ« 31.5% gjatĂ« vitit, ndĂ«rsa pjesa e Microsoft IIS ka rĂ«nĂ« nga 7% nĂ« 6%. Pjesa e LiteSpeed Ă«shtĂ« rritur nga 8.5% nĂ« 12.1%, ndĂ«rsa Node.js nga 1.2% nĂ« 1.9%. NĂ« Rusi, nginx pĂ«rdoret nĂ« 79.8% tĂ« faqeve mĂ« tĂ« vizituara (njĂ« vit mĂ« parĂ« â 79.1%).
Përmirësimet më të dukshme të shtuara gjatë formimit të degës kryesore 1.21.x:
- Në direktivat "proxy_ssl_certificate", "proxy_ssl_certificate_key", "grpc_ssl_certificate", "grpc_ssl_certificate_key", "uwsgi_ssl_certificate" dhe "uwsgi_ssl_certificate_key" është shtuar mbështetje për variablat.
- Në modulin e proxy-it të postës është shtuar mbështetje për modin "pipelining" për dërgimin e disa kërkesave POP3 ose IMAP në një lidhje, si dhe është shtuar një direktivë e re "max_errors", e cila përcakton numrin maksimal të gabimeve të protokollit, pas të cilave lidhja do të mbyllet.
- ĂshtĂ« realizuar dĂ«rgimi i header-Ă«ve "Auth-SSL-Protocol" dhe "Auth-SSL-Cipher" serverit pĂ«r autentifikimin e proxy-it tĂ« postĂ«s.
- Në modulën stream është shtuar mbështetje për zgjerimin TLS ALPN. Për përcaktimin e listës së protokoleve të mbështetur ALPN (h2, http/1.1) është propozuar direktiva ssl_alpn, dhe për marrjen e informacionit mbi protokollin ALPN të rënë dakord me klientin, është shtuar variabla $ssl_alpn_protocol.
- Në modulin e stream është shtuar parametri "fastopen", që aktivizon modin "TCP Fast Open" për soketët që dëgjojnë.
- ĂshtĂ« vendosur ekrimi i simboleve «»», «», «\», «^», «`», «{« dhe «}» kur bĂ«het proksia me ndryshim URI.
- Në modulën stream është shtuar direktiva proxy_half_close, e cila lejon kufizimin e sjelljes gjatë mbylljes së lidhjes së proksiuar TCP nga njëra anë («TCP half-close»).
- Në modulën ngx_http_mp4_module është shtuar një direktivë e re mp4_start_key_frame për transmetimin e kanaleve video duke filluar nga çelësi i kornizës.
- ĂshtĂ« shtuar variable $ssl_curve, e cila kthen llojin e kurbĂ«s eliptike tĂ« zgjedhur pĂ«r negociimin e çelĂ«save nĂ« njĂ« sesion TLS.
- Në direktivën «sendfile_max_chunk» vlera e paracaktuar është ndryshuar në 2 megabajt;
- ĂshtĂ« siguruar kompatibiliteti me library-n OpenSSL 3.0. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r thirrjen e SSL_sendfile() kur pĂ«rdoret OpenSSL 3.0.
- Ndërsa me default është aktivizuar ndërtimi me library-n PCRE2, e cila ofron funksione për përpunimin e shprehjeve të rregullta.
- Kur ngarkoni certifikatat serverë mësohet përdorimi i nivele të sigurie, të mbështetura që nga OpenSSL 1.1.0 dhe që caktohen përmes parametrave «@SECLEVEL=N» në direktivën ssl_ciphers.
- Ndihma për grupin eksportues të algoritmave të enkriptuar është ndërprerë.
- Në API-në e filtrimit të trupit të kërkesës, është e lejuar buferizimi i të dhënave të përpunuara.
- Në platformën FreeBSD është përmirësuar mbështetje për thirrjen e sistemit sendfile, e destinuar për të organizuar transmetimin direkt të të dhënave midis një përshkruesi skedari dhe një socket-i. Mënyra sendfile(SF_NODISKIO) është gjithmonë e aktivizuar dhe është shtuar mbështetje për mënyrën sendfile(SF_NOCACHE).
- Ndihma për vendosjen e lidhjeve HTTP/2 me përdorimin e zgjerimit NPN (Negocimi i Protokollit të Ardhshëm) në vend të ALPN është ndërprerë.
- ĂshtĂ« siguruar bllokimi i kĂ«rkesave HTTP/1.0 qĂ« pĂ«rfshijnĂ« titullin HTTP «Transfer-Encoding» (qĂ« u shfaq nĂ« versionin e protokollit HTTP/1.1).
- Mbrojtje e përforcuar nga sulmet e nivelit «HTTP Request Smuggling» ndaj sistemeve frontend-backend, duke lejuar ndërhyrjen në përmbajtjen e kërkesave të përdoruesve të tjerë, që përpunohen në të njëjtin rrjedh mes frontendit dhe backendit. Nginx tani gjithmonë kthen një gabim kur përdor metoden CONNECT; nëse janë të dhëna njëkohësisht titujt «Content-Length» dhe «Transfer-Encoding»; nëse ka hapësira ose karaktere kontrolli në rrugën e kërkesës, emrin e titullit HTTP ose në vlerën e titullit «Host».
Burimi: opennet.ru
