nginx 1.20.0 izdanje

Nakon godinu dana razvoja, predstavljena je nova stabilna grana HTTP servera visokih performansi i višeprotokolnog proxy servera nginx 1.20.0, koja uključuje promjene akumulirane u glavnoj grani 1.19.x. U budućnosti će se sve promjene u stabilnoj grani 1.20 odnositi na eliminaciju ozbiljnih grešaka i ranjivosti. Uskoro će se formirati glavna grana nginxa 1.21, u kojoj će se nastaviti razvoj novih karakteristika. Za obične korisnike koji nemaju zadatak osigurati kompatibilnost s modulima trećih strana, preporučuje se korištenje glavne grane, na temelju koje se svaka tri mjeseca formiraju izdanja komercijalnog proizvoda Nginx Plus.

Prema martovskom izveštaju Netcrafta, nginx se koristi na 20.15% svih aktivnih sajtova (pre godinu dana 19.56%, pre dve godine 20.73%), što odgovara drugom mestu po popularnosti u ovoj kategoriji (Apacheov udeo odgovara 25.38% (prije godinu dana 27.64%), Google - 10.09%, Cloudflare - 8.51%.U isto vrijeme, kada se uzmu u obzir svi sajtovi, nginx zadržava liderstvo i zauzima 35.34% tržišta (prije godinu dana 36.91%, prije dvije godine - 27.52%), dok udio Apachea odgovara 25.98%, OpenResty (platforma bazirana na nginx i LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Među milion najposjećenijih lokacija na svijetu, nginxov udio je 25.55% (prije godinu dana 25.54%, prije dvije godine 26.22%). Trenutno, oko 419 miliona web stranica koristi Nginx (459 miliona prije godinu dana). Prema W3Techs-u, nginx se koristi na 33.7% sajtova od milion najposećenijih, u aprilu prošle godine ta brojka je bila 31.9%, godinu ranije - 41.8% (pad se objašnjava prelaskom na odvojeno računovodstvo Cloudflare http server). Udio Apache-a je tokom godine pao sa 39.5% na 34%, a Microsoft IIS-a sa 8.3% na 7%. Udio LiteSpeed-a je porastao sa 6.3% na 8.4%, a Node.js-a sa 0.8% na 1.2%. U Rusiji se nginx koristi na 79.1% najposjećenijih stranica (prije godinu dana - 78.9%).

Najznačajnija poboljšanja dodata tokom razvoja 1.19.x upstream grane:

  • Dodata mogućnost verifikacije klijentskih sertifikata korišćenjem eksternih servisa zasnovanih na OCSP (Online Certificate Status Protocol) protokolu. Da bi se omogućila provjera, predložena je ssl_ocsp direktiva, da se konfigurira veličina keša - ssl_ocsp_cache, da se redefinira URL OCSP rukovatelja navedenog u certifikatu - ssl_ocsp_responder.
  • Uključen je modul ngx_stream_set_module, koji vam omogućava da dodijelite vrijednost promjenljivoj serveru { listen 12345; postavite $true 1; }
  • Dodata proxy_cookie_flags direktiva za određivanje zastavica za kolačiće u proksi vezama. Na primjer, da dodate oznaku “httponly” u Cookie “jedan”, i “nosecure” i “samesite=strict” zastavice za sve ostale kolačiće, možete koristiti sljedeću konstrukciju: proxy_cookie_flags jedan httponly; proxy_cookie_flags ~ nosecure samesite=strogo;

    Slična userid_flags direktiva za dodavanje zastavica kolačićima je također implementirana za modul ngx_http_userid.

  • Dodane su direktive “ssl_conf_command”, “proxy_ssl_conf_command”, “grpc_ssl_conf_command” i “uwsgi_ssl_conf_command”, pomoću kojih možete postaviti proizvoljne parametre za konfiguraciju OpenSSL-a. Na primjer, da biste dali prioritet ChaCha šiframa i naprednoj konfiguraciji TLSv1.3 šifri, možete specificirati opcije ssl_conf_command PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Dodata "ssl_reject_handshake" direktiva, koja upućuje na odbijanje svih pokušaja pregovaranja o SSL konekcijama (na primjer, može se koristiti za odbijanje svih poziva s nepoznatim imenima hosta u SNI polju). server { listen 443 ssl; ssl_reject_handshake on; } server { listen 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Direktiva proxy_smtp_auth dodata je proxyju pošte, omogućavajući vam da autentifikujete korisnika na pozadinskom dijelu pomoću naredbe AUTH i PLAIN SASL mehanizma.
  • Dodata je "keepalive_time" direktiva, koja ograničava ukupni životni vijek svake Keep-alive veze, nakon čega će se veza zatvoriti (ne treba je brkati sa keepalive_timeout, koja definira vrijeme neaktivnosti nakon kojeg se Keep-alive veza zatvara).
  • Dodata varijabla $connection_time, preko koje možete dobiti informacije o trajanju konekcije u sekundama sa tačnošću od milisekundi.
  • “min_free” parametar je dodat direktivama “proxy_cache_path”, “fastcgi_cache_path”, “scgi_cache_path” i “uwsgi_cache_path”, koji reguliše veličinu keša na osnovu određivanja minimalne veličine slobodnog prostora na disku.
  • "lingering_close", "lingering_time" i "lingering_timeout" direktive su prilagođene za rad sa HTTP/2.
  • Kod za obradu veze u HTTP/2 je blizak HTTP/1.x implementaciji. Podrška za pojedinačne postavke "http2_recv_timeout", "http2_idle_timeout" i "http2_max_requests" je ukinuta u korist općih direktiva "keepalive_timeout" i "keepalive_requests". Postavke "http2_max_field_size" i "http2_max_header_size" su uklonjene i umjesto njih treba koristiti "large_client_header_buffers".
  • Dodata je nova opcija komandne linije “-e”, koja vam omogućava da navedete alternativni fajl za pisanje dnevnika grešaka, koji će se koristiti umesto dnevnika navedenog u podešavanjima. Umjesto imena datoteke, možete odrediti posebnu vrijednost stderr.

izvor: opennet.ru

Dodajte komentar