Lansarea nginx 1.28.0 și a fork-ului FreeNginx 1.28.0

După un an de dezvoltare, a fost lansată o nouă ramură stabilă a serverului HTTP de înaltă performanță și proxy-ului multiprotocole nginx 1.28.0, care a încorporat modificările acumulate în ramura principală 1.27.x. În continuare, toate modificările din ramura stabilă 1.28 vor fi legate de corectarea erorilor grave și a vulnerabilităților. În curând va fi formată ramura principală nginx 1.29, în care se va continua dezvoltarea de noi funcționalități. Pentru utilizatorii obișnuiți, care nu au sarcina de a asigura compatibilitatea cu module externe, se recomandă utilizarea ramurii principale, pe baza căreia se formează o lansare a produsului comercial Nginx Plus la fiecare trei luni.

Conform raportului din martie al companiei Netcraft, aproximativ 245 milioane de site-uri funcționează sub managementul nginx (cu un an în urmă 243 milioane, acum doi ani 289 milioane). Nginx este utilizat pe 17.89% din toate site-urile active (acum un an 18.15%, acum doi ani 18.94%), ceea ce corespunde locului întâi în popularitate în această categorie (cota Apache este de 16.03% (acum un an 20.09%, acum doi ani 20.52%), Cloudflare — 17.81% (14.12%, 11.32%), Google — 9.89% (10.41%, 9.89%).

Analizând toate site-urile, nginx păstrează supremația și deține 20.48% din piață (acum un an 22.31%, acum doi ani — 25.94%), în timp ce cota Apache corespunde 16.03% (20.17%, 20.58%), Cloudflare — 12.87% (11.24%, 10.17%), OpenResty (o platformă bazată pe nginx și LuaJIT) — 9.36% (7.93%, 7.94%).

Printre cele mai vizitate un million de site-uri din lume, nginx ocupă locul doi cu o cotă de 20.37% (acum un an 20.63%, acum doi ani 21.37%). Locul întâi este deținut de Cloudflare — 22.32% (acum un an 22.59%, acum doi ani 21.62%). Cota Apache httpd este de 17.95% (20.09%, 21.18%).

Conform datelor de la W3Techs, nginx este folosit pe 33.8% din site-urile dintre cele mai vizitate un million (în aprilie anul trecut, acest procent era de 34.3%, iar cu doi ani în urmă — 34.5%). Cota Apache a scăzut de la 30.1% la 26.3% în ultimele 12 luni, iar cota Microsoft IIS a scăzut de la 5% la 4%. Cota Node.js a crescut de la 3.2% la 4.4%, iar cota LiteSpeed de la 12.9% la 14.6%.

Cele mai notabile îmbunătățiri adăugate în procesul de formare a ramurii principale 1.27.x:

  • Pentru conexiunile care folosesc protocolul QUIC, a fost adăugată suportul pentru algoritmul de control al congestiei CUBIC (RFC 9438), al cărui funcționare constă în creșterea treptată a dimensiunii feronției de congestie până la apariția pierderii de pachete, după care dimensiunea feronției revine la valoarea de dinaintea pierderii. În testele efectuate, utilizarea CUBIC a permis reducerea timpului de transfer al unui fișier de 500 MB cu 24% la întârzieri de 40 ms și BDP de 750K (Productul de Întârziere a Lățimii de Bandă) și cu 73% la întârzieri de 100 ms și BDP de 9M.
  • În modulul stream a fost adăugată suport pentru verificarea revocării certificatelor clienților, folosind protocolul OCSP (Online Certificate Status Protocol).
  • În modulul stream a fost implementat suportul pentru tehnica de verificare a revocării certificatelor OCSP Stapling, prin care, la stabilirea conexiunii TLS, răspunsul OCSP, validat de autoritatea de certificare, este transmis de serverul care furnizează site-ul, fără a fi necesară contactarea directă a autorității de certificare.
  • La inițierea și actualizarea configurației a fost implementată cache-ul certificatelor SSL, cheilor și CRL (Certificate Revocation List).
  • Au fost adăugate opțiuni pentru reducerea consumului de resurse și diminuarea încărcării pe CPU atunci când se folosește TLS în configurații cu un număr mare de blocuri server și location. Modificările adăugate permit utilizarea contextului SSL deja existent din blocul părinte, în loc să se creeze un context SSL separat (SSL_CTX în OpenSSL) pentru fiecare bloc de configurație.
  • În directiva „ssl_client_certificate” a fost asigurată suportul pentru certificate cu informații suplimentare.
  • Pentru verificarea certificatelor SSL ale clienților, directiva „ssl_client_certificate” nu mai este obligatorie.
  • În modulul ngx_mail_proxy_module a fost adăugat suport pentru modul IMAP LOGIN specific SmarterMail cu un răspuns CAPABILITY netagat.
  • În modulul ngx_http_proxy_module a fost adăugată directiva „proxy_pass_trailers”, care permite transmiterea câmpurilor de antet la sfârșitul răspunsului de la serverul proxy către client.
  • Directiva „server”, utilizată în blocul „upstream”, a fost adăugată cu suportul parametrului „resolve”, care include urmărirea modificărilor adrese IP pentru numele de domeniu utilizat și actualizarea automată a configurației blocului „upstream” fără a necesita repornirea nginx în cazul modificării adresei.
  • A fost adăugată posibilitatea de a utiliza variabile în directivele «proxy_limit_rate», «fastcgi_limit_rate», «scgi_limit_rate» și «uwsgi_limit_rate».
  • În directivele „proxy_bind”, „fastcgi_bind”, „grpc_bind”, „memcached_bind”, „scgi_bind” și „uwsgi_bind”, precum și ca adresă a clientului în modulul ngx_http_realip_module, este permisă specificarea adreselor IPv6 în paranteze pătrate fără număr de port.
  • A fost introdusă directiva «keepalive_min_timeout», care definește timeout-ul în care nginx nu va închide conexiunea keep-alive cu clientul.
  • Protocolele TLSv1 și TLSv1.1 sunt dezactivate în mod implicit.
  • Au fost rezolvate problemele cu încărcarea îndelungată a fișierelor de configurație din cauza reanalizării aceluiași set de certificate TLS, chei și liste de autoritate certificatoare. Reîncărcarea configurației a fost accelerată prin reutilizarea obiectelor TLS neschimbate, cum ar fi certificatele, cheile și CRL. Pentru a dezactiva moștenirea obiectelor la actualizarea configurației, a fost adăugată directiva «ssl_object_cache_inheritable».
  • A fost adăugat un cache pentru certificate și chei încărcate cu ajutorul variabilelor în directive (de exemplu, «ssl_certificate /etc/ssl/$ssl_server_name.crt»). Au fost adăugate directivele «ssl_certificate_cache», «proxy_ssl_certificate_cache», «grpc_ssl_certificate_cache» și «uwsgi_ssl_certificate_cache» pentru a gestiona cache-ul. Prin aceste directive, se poate configura dimensiunea maximă a cache-ului, timpul de valabilitate a înregistrărilor și timpul de curățare a înregistrărilor nefolositoare. De exemplu: «ssl_certificate_cache max=1000 inactive=20s valid=1m;».
  • Consumul de memorie a fost redus în cazul procesării cererilor de lungă durată în configurații care folosesc directivele «gzip», «gunzip», «ssi», «sub_filter» sau «grpc_pass».
  • Dimensiunea maximă a sesiunilor SSL care pot fi cashed în memorie partajată a fost crescută la 8192.
  • S-a reușit construirea cu biblioteca C Musl.
  • S-au făcut lucrări de optimizare a performanței și remedie a erorilor în implementarea HTTP/3.

De asemenea, se poate menționa lansarea versiunii proiectului FreeNginx 1.28.0, care dezvoltă un fork al Nginx. Fork-ul este dezvoltat de Maxim Dunin, unul dintre dezvoltatorii cheie ai Nginx. FreeNginx este poziționat ca un proiect non-comercial, care asigură dezvoltarea bazei de cod Nginx fără intervenții corporative. Printre modificările specifice din ramura FreeNginx 1.28 se numără:

  • Parametrul «off» în directiva «pid», care dezactivează crearea fișierului PID.
  • Limitarea intensității scrierii mesajelor în logul de erori pentru a proteja împotriva umplerii logului cu mesaje standard.
  • Implementarea parametrului multipath în directiva listen pentru suportul Multipath TCP.
  • Suport pentru antetul HTTP „Age” pentru determinarea duratei de viață a înregistrărilor în cache.
  • Adăugarea metodelor de autentificare XOAUTH2 și OAUTHBEARER în modulul mail_proxy.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster