Versiunea nginx 1.20.0

După un an de dezvoltare, a fost introdusă o nouă ramură stabilă a serverului HTTP de înaltă performanță și a serverului proxy multi-protocol nginx 1.20.0, care încorporează modificările acumulate în ramura principală 1.19.x. În viitor, toate modificările din ramura stabilă 1.20 vor fi legate de eliminarea erorilor grave și a vulnerabilităților. În curând se va forma ramura principală a nginx 1.21, în care dezvoltarea de noi funcții va continua. Pentru utilizatorii obișnuiți care nu au sarcina de a asigura compatibilitatea cu modulele terțe, se recomandă utilizarea ramurii principale, pe baza căreia se formează versiuni ale produsului comercial Nginx Plus la fiecare trei luni.

Potrivit unui raport din martie de la Netcraft, nginx este folosit pe 20.15% din toate site-urile active (cu un an în urmă 19.56%, acum doi ani 20.73%), ceea ce corespunde locului doi în popularitate în această categorie (cota Apache corespunde cu 25.38% (acum un an 27.64%), Google - 10.09%, Cloudflare - 8.51%.Totodată, luând în considerare toate site-urile, nginx își păstrează liderul și ocupă 35.34% din piață (acum un an 36.91%, acum doi ani - 27.52%), în timp ce ponderea Apache corespunde cu 25.98%, OpenResty ( platformă bazată pe nginx și LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Printre cele mai vizitate milioane de site-uri din lume, ponderea lui nginx este de 25.55% (acum un an 25.54%, acum doi ani 26.22%). În prezent, aproximativ 419 milioane de site-uri web rulează Nginx (459 milioane în urmă cu un an). Potrivit W3Techs, nginx este folosit pe 33.7% dintre site-uri din milionul cel mai vizitat, în aprilie anul trecut această cifră era de 31.9%, cu anul anterior - 41.8% (scăderea se explică prin trecerea la contabilitatea separată a http Cloudflare). Server). Cota Apache a scăzut pe parcursul anului de la 39.5% la 34%, iar cota Microsoft IIS de la 8.3% la 7%. Cota LiteSpeed ​​a crescut de la 6.3% la 8.4%, iar Node.js de la 0.8% la 1.2%. În Rusia, nginx este folosit pe 79.1% dintre cele mai vizitate site-uri (acum un an - 78.9%).

Cele mai notabile îmbunătățiri adăugate în timpul dezvoltării ramurii din amonte 1.19.x:

  • S-a adăugat posibilitatea de a verifica certificatele client utilizând servicii externe bazate pe protocolul OCSP (Online Certificate Status Protocol). Pentru a activa verificarea, este propusă directiva ssl_ocsp, pentru a configura dimensiunea cache - ssl_ocsp_cache, pentru a redefini adresa URL a handler-ului OCSP specificat în certificat - ssl_ocsp_responder.
  • Este inclus modulul ngx_stream_set_module, care vă permite să atribuiți o valoare variabilei server { listen 12345; setați $true 1; }
  • S-a adăugat directiva proxy_cookie_flags pentru a specifica steaguri pentru cookie-uri în conexiunile proxy. De exemplu, pentru a adăuga steagul „httponly” la Cookie-ul „one”, și steagul „nosecure” și „samesite=strict” pentru toate celelalte cookie-uri, puteți utiliza următoarea construcție: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    O directivă similară userid_flags pentru adăugarea de steaguri la cookie-uri este implementată și pentru modulul ngx_http_userid.

  • S-au adăugat directivele „ssl_conf_command”, „proxy_ssl_conf_command”, „grpc_ssl_conf_command” și „uwsgi_ssl_conf_command”, cu ajutorul cărora puteți seta parametri arbitrari pentru configurarea OpenSSL. De exemplu, pentru a prioritiza cifrurile ChaCha și configurația avansată a cifrurilor TLSv1.3, puteți specifica ssl_conf_command Opțiuni PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • S-a adăugat directiva „ssl_reject_handshake”, care indică respingerea tuturor încercărilor de a negocia conexiuni SSL (de exemplu, poate fi folosită pentru a respinge toate apelurile cu nume de gazdă necunoscute în câmpul SNI). server { listen 443 ssl; ssl_reject_handshake activat; } server { listen 443 ssl; nume_server example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Directiva proxy_smtp_auth a fost adăugată la proxy-ul de e-mail, permițându-vă să autentificați utilizatorul pe backend folosind comanda AUTH și mecanismul PLAIN SASL.
  • S-a adăugat directiva „keepalive_time”, care limitează durata totală de viață a fiecărei conexiuni keep-alive, după care conexiunea va fi închisă (a nu se confunda cu keepalive_timeout, care definește timpul de inactivitate după care conexiunea keep-alive este închisă).
  • S-a adăugat variabila $connection_time, prin care puteți obține informații despre durata conexiunii în secunde cu precizie în milisecunde.
  • A fost adăugat un parametru „min_free” la directivele „proxy_cache_path”, „fastcgi_cache_path”, „scgi_cache_path” și „uwsgi_cache_path”, care reglementează dimensiunea cache-ului pe baza determinării dimensiunii minime a spațiului liber pe disc.
  • Directivele „lingering_close”, „lingering_time” și „lingering_timeout” au fost adaptate pentru a funcționa cu HTTP/2.
  • Codul de procesare a conexiunii în HTTP/2 este aproape de implementarea HTTP/1.x. Suportul pentru setările individuale „http2_recv_timeout”, „http2_idle_timeout” și „http2_max_requests” a fost întrerupt în favoarea directivelor generale „keepalive_timeout” și „keepalive_requests”. Setările „http2_max_field_size” și „http2_max_header_size” au fost eliminate, iar „large_client_header_buffers” ar trebui să fie folosit în schimb.
  • S-a adăugat o nouă opțiune de linie de comandă „-e”, care vă permite să specificați un fișier alternativ pentru scrierea jurnalului de erori, care va fi folosit în locul jurnalului specificat în setări. În loc de numele fișierului, puteți specifica valoarea specială stderr.

Sursa: opennet.ru

Adauga un comentariu