După un an de dezvoltare o nouă ramură stabilă a unui server HTTP de înaltă performanță și a unui proxy multi-protocol , care a inclus modificările acumulate în cadrul ramurii principale 1.17.x. În continuare, toate modificările din ramura stabilă 1.18 vor fi legate de eliminarea erorilor grave și a vulnerabilităților. În curând va fi creată ramura principală nginx 1.19, în cadrul căreia va continua dezvoltarea noilor funcționalități. Pentru utilizatorii obișnuiți, care nu au sarcina de a asigura compatibilitatea cu modulele externe, se recomandă utilizarea ramurii principale, pe baza căreia la fiecare trei luni se formează versiuni ale produsului comercial Nginx Plus.
In accordance with compania Netcraft, nginx este utilizat pe 19.56% din toate site-urile active (cu un an în urmă 20.73%, cu doi ani în urmă 21.02%), ceea ce corespunde locului al doilea în popularitate în această categorie (partea Apache corespunde 27.64%, Google — 10.03%, Microsoft IIS — 4.77%). În acest context, când se iau în considerare toate site-urile, nginx își păstrează liderul și ocupă 36.91% din piață (cu un an în urmă 27.52%), în timp ce partea Apache corespunde 24.73%, Microsoft IIS — 12.85%, Google — 3.42%.
Printre cele mai vizitate un milion de site-uri din lume, partea nginx constituie 25.54% (cu un an în urmă 26.22%, cu doi ani în urmă 23.76%). În prezent, aproximativ 459 milioane de site-uri funcționează sub nginx (cu un an în urmă 397 milioane). Potrivit W3Techs, nginx este utilizat pe 31.9% din site-urile celor mai vizitate un milion, în aprilie anul trecut acest indicator se situa la 41.8%, iar în anul anterior — 38% (declinul este explicat prin trecerea la o contabilizare separată a serverului HTTP Cloudflare). Partea Apache a scăzut de la 43.6% la 38.9% în decurs de un an, iar partea Microsoft IIS de la 8.6% la 8.3%. În Rusia, nginx este utilizat pe 78.9% din cele mai vizitate site-uri (cu un an în urmă — 81%).
Cele mai semnificative îmbunătățiri adăugate în procesul de formare a ramurii principale 1.17.x:
- A fost adăugată directiva , care activează modul de testare, în care nu se aplică restricții asupra intensității procesării cererilor (fără limită de rată), dar se continuă contabilizarea cererilor care depășesc limitele în memoria partajată;
- A fost adăugată directiva , care va activa modul ngx_http_limit_conn_module în modul beta, în care numărul de conexiuni nu este limitat, dar este contabilizat;
- A fost adăugată directivele „„, care permite adăugarea unei întârzieri pentru cererile neautorizate cu cod de răspuns 401, pentru a reduce intensitatea încercărilor de spargere a parolelor și pentru a proteja împotriva , care manipulează măsurarea timpului de executare a operațiunilor (timing attack) atunci când se accesează sistemele, la care accesul este restricționat , sau (JSON Web Token);
- A fost adăugată suportul pentru variabile în directivele „limit_rate” și „limit_rate_after”, precum și în directivele „proxy_upload_rate” și „proxy_download_rate” ale modulului stream;
- În directiva a fost adăugat suportul pentru utilizarea variabilelor în parametrul care definește adresa. Dacă adresa este specificată sub formă de nume de domeniu, numele este căutat printre grupurile de servere descrise, iar, dacă nu este găsit, este determinat cu ajutorul resolver-ului;
- Au fost adăugate variabile noi și , care conțin adresa și portul serverului, obținute din antetul protocolului PROXY;
- În modulul a fost adăugată variabila , care stochează rezultatul limitării numărului de conexiuni: PASSED, REJECTED sau REJECTED_DRY_RUN;
- În modulul a fost adăugată variabila , care stochează rezultatul limitării vitezei de intrare a cererilor: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN sau REJECTED_DRY_RUN;
- În mod implicit, este asigurată construirea modulului ;
- A fost adăugat suport pentru comutarea blocurilor denumite «location» prin metoda $r->internal_redirect(), oferită de interpretul Perl încorporat. Această metodă implică acum procesarea URI-urilor cu caractere escape;
- Când este utilizată în blocul de setări „upstream” a directivei „” pentru organizarea balastării încărcăturii cu legătura clientului la server, în cazul în care se specifică o valoare goală a cheii, acum se activează modul de balastare uniformă (round-robin);
- S-a adăugat suport pentru apelul ioctl(FIONREAD), dacă este disponibil, pentru a evita citirea dintr-o conexiune rapidă pe o perioadă lungă de timp.
Sursa: opennet.ro
