Pas 13 muajsh zhvillimi, është prezantuar dega e re e qëndrueshme e serverit HTTP me performancë të lartë dhe serverit proxy me shumë protokoll nginx 1.22.0, e cila përmban ndryshimet e grumbulluara në degën kryesore 1.21.x. Në të ardhmen, të gjitha ndryshimet në degën e qëndrueshme 1.22 do të lidhen me eliminimin e gabimeve serioze dhe dobësive. Së shpejti do të formohet dega kryesore nginx 1.23, e cila do të vazhdojë zhvillimin e mundësive të reja. Për përdoruesit e zakonshëm, të cilët nuk kanë detyrë të sigurojnë përputhshmëri me modulet e jashtme, rekomandohet të përdorin degën kryesore, mbi të cilën çdo tre muaj formohen lëshimet e produktit komercial Nginx Plus.
Sipas raportit tĂ« prillit nga kompania 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Ă« pĂ«rkon me vendin e dytĂ« pĂ«r popullaritet nĂ« kĂ«tĂ« kategori (pjesa e Apache pĂ«rkon me 22.58% (njĂ« vit mĂ« parĂ« 25.38%), Cloudflare â 10.42% (8.51%), Google â 8.89% (10.09%). Kur shqyrtohen tĂ« gjithafaqet, nginx ruan udhĂ«heqjen dhe zĂ« 31.13% tĂ« tregut (njĂ« vit mĂ« parĂ« 35.34%, dy vjet mĂ« parĂ« â 36.91%), ndĂ«rsa pjesa e Apache pĂ«rkon me 23.08% (25.98%), OpenResty (platforma nĂ« bazĂ« tĂ« 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 faqe janĂ« nĂ«n menaxhimin e nginx (njĂ« vit mĂ« parĂ« 419 milion). Sipas tĂ« dhĂ«nave tĂ« W3Techs, nginx pĂ«rdoret nĂ« 33.5% tĂ« faqeve nga milioni mĂ« tĂ« vizituara; nĂ« maj tĂ« vitit tĂ« kaluar ky tregues ishte 33.8%, dy vjet mĂ« parĂ« â 31.9%. Pjesa e Apache Ă«shtĂ« zvogĂ«luar nga 33.8% nĂ« 31.5% brenda njĂ« viti, ndĂ«rsa pjesa e Microsoft IIS nga 7% nĂ« 6%. Pjesa e LiteSpeed Ă«shtĂ« rritur nga 8.5% nĂ« 12.1%, dhe 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 postës është shtuar mbështetje për modin «pipelining» për transmetimin e disa kërkesave POP3 ose IMAP në një lidhje, si dhe është shtuar drejtorja e re «max_errors», që përcakton numrin maksimal të gabimeve të protokollit, pas të cilave lidhja do të mbyllet.
- Implementimi i transmetimit të titujve «Auth-SSL-Protocol» dhe «Auth-SSL-Cipher» server të autentifikimit të proxy postës.
- Në modulin stream është shtuar mbështetje për zgjerimin TLS ALPN. Për të përcaktuar listën e protokolleve të mbështetur ALPN (h2, http/1.1), është ofruar drejtorja ssl_alpn, dhe për të marrë informacionin mbi protokollin ALPN të rënë dakord me klientin, variabla $ssl_alpn_protocol.
- Në modulit e stream është shtuar parametri "fastopen", që aktivizon modin "TCP Fast Open" për soketat që dëgjojnë.
- ĂshtĂ« krijuar njĂ« mekanizĂ«m pĂ«r ekranuar karakteret «»», «», «\», «^», «`», «{«, «|» dhe «}» gjatĂ« proxy me ndryshimin e URI.
- Në modulin stream është shtuar drejtorja proxy_half_close, me të cilën mund të konfigurohet sjellja gjatë mbylljes së lidhjes së proxy TCP në një nga anët («TCP half-close»).
- Në modul ngx_http_mp4_module është shtuar drejtorja e re mp4_start_key_frame për transmetimin e videove, duke filluar nga çelësi i kuadrove.
- ĂshtĂ« shtuar variabla $ssl_curve, e cila kthen llojin e kurbĂ«s eliptike tĂ« zgjedhur pĂ«r negociatat e çelĂ«save nĂ« sesionin TLS.
- Në direktivën "sendfile_max_chunk" vlera e paracaktuar është ndryshuar në 2 megabajt;
- ĂshtĂ« siguruar pĂ«rputhshmĂ«ria me bibliotekĂ«n OpenSSL 3.0. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r thirrjen SSL_sendfile() kur pĂ«rdoret OpenSSL 3.0.
- ĂshtĂ« pĂ«rfshirĂ« nga parazgjedhja ndarja me bibliotekĂ«n PCRE2, e cila ofron funksione pĂ«r pĂ«rpunimin e shprehjeve tĂ« rregullta.
- Kur ngarkohen certifikatat server është rregulluar përdorimi i niveleve të sigurisë, të mbështetur që nga OpenSSL 1.1.0 dhe të përcaktuar nëpërmjet parametrave «@SECLEVEL=N» në drejtorinë ssl_ciphers.
- ĂshtĂ« bĂ«rĂ« ndalimi i mbĂ«shtetjes pĂ«r grupin e eksporteve tĂ« enkriptimit.
- Në API-në e filtrimit të trupit të kërkesës, është 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 cila është e destinuar për të realizuar transfertën e drejtpërdrejtë të të dhënave mes një përshkruesi skedarësh dhe një soketi. Rejimi sendfile(SF_NODISKIO) është aktivizuar vazhdimisht dhe është shtuar mbështetje për rejimin sendfile(SF_NOCACHE).
- ĂshtĂ« ndalur mbĂ«shtetja pĂ«r vendosjen e lidhjeve HTTP/2 duke pĂ«rdorur zgjerimin NPN (Next Protocol Negotiation) nĂ« vend tĂ« ALPN.
- ĂshtĂ« siguruar bllokimi i kĂ«rkesave HTTP/1.0, qĂ« pĂ«rmbajnĂ« header-in HTTP 'Transfer-Encoding' (qĂ« u shfaq nĂ« versionin e protokollit HTTP/1.1).
- ĂshtĂ« forcuar mbrojtja nga sulmet e klasĂ«s «HTTP Request Smuggling» ndaj sistemeve frontend-backend, qĂ« lejojnĂ« tĂ« depĂ«rtohet nĂ« pĂ«rmbajtjen e kĂ«rkesave tĂ« pĂ«rdoruesve tĂ« tjerĂ«, tĂ« trajtuara nĂ« tĂ« njĂ«jtin rrjedh midis frontendit dhe backendit. Nginx tani gjithmonĂ« kthen njĂ« gabim kur pĂ«rdoret metoda CONNECT; kur specifikohen njĂ«kohĂ«sisht titujt «Content-Length» dhe «Transfer-Encoding»; nĂ« qoftĂ« se ka hapĂ«sira ose simbole kontrolli nĂ« rreshtin e kĂ«rkesĂ«s, emrin e titullit HTTP ose nĂ« vlerĂ«n e titullit «Host».
Burimi: opennet.ru
