Izdanje nginx 1.20.0

Nakon godinu dana razvoja, predstavljena je nova stabilna grana HTTP poslužitelja visokih performansi i proxy poslužitelja s više protokola nginx 1.20.0, koja uključuje promjene akumulirane u glavnoj grani 1.19.x. U budućnosti će sve promjene u stabilnoj grani 1.20 biti povezane s otklanjanjem ozbiljnih grešaka i ranjivosti. Uskoro će se formirati glavna grana nginxa 1.21 u kojoj će se nastaviti razvoj novih značajki. 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 izvješću Netcrafta iz ožujka, nginx se koristi na 20.15% svih aktivnih stranica (prije godinu dana 19.56%, prije dvije godine 20.73%), što odgovara drugom mjestu po popularnosti u ovoj kategoriji (udio Apachea odgovara 25.38% (prije godinu dana 27.64%), Google - 10.09%, Cloudflare - 8.51%. U isto vrijeme, kada se uzmu u obzir sve stranice, nginx zadržava svoje vodstvo 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 temeljena na nginx i LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Među milijun najposjećenijih stranica na svijetu udio nginxa je 25.55% (prije godinu dana 25.54%, prije dvije godine 26.22%). Trenutno oko 419 milijuna web stranica koristi Nginx (459 milijuna prije godinu dana). Prema W3Techs, nginx se koristi na 33.7% web stranica od milijun najposjećenijih, u travnju prošle godine ta je brojka iznosila 31.9%, godinu prije - 41.8% (pad se objašnjava prelaskom na zasebno računovodstvo Cloudflare http poslužitelj). Udio Apachea pao je tijekom godine s 39.5% na 34%, a udio Microsoft IIS-a s 8.3% na 7%. LiteSpeedov udio je porastao sa 6.3% na 8.4%, a Node.js s 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 dodana tijekom razvoja 1.19.x uzvodne grane:

  • Dodana je mogućnost provjere klijentskih certifikata korištenjem vanjskih usluga temeljenih na OCSP (Online Certificate Status Protocol) protokolu. Za omogućavanje provjere predlaže se direktiva ssl_ocsp, za konfiguriranje veličine predmemorije - ssl_ocsp_cache, za redefiniranje URL-a OCSP rukovatelja navedenog u certifikatu - ssl_ocsp_responder.
  • Uključen je modul ngx_stream_set_module koji vam omogućuje dodjeljivanje vrijednosti poslužitelju varijable { listen 12345; postavite $true 1; }
  • Dodana direktiva proxy_cookie_flags za određivanje oznaka za kolačiće u proxy vezama. Na primjer, da biste dodali oznaku “httponly” kolačiću “one”, te oznake “nosecure” i “samesite=strict” za sve ostale kolačiće, možete koristiti sljedeću konstrukciju: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strogo;

    Slična direktiva userid_flags za dodavanje oznaka kolačićima također je 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, za davanje prioriteta ChaCha šiframa i naprednoj konfiguraciji TLSv1.3 šifri, možete navesti ssl_conf_command Opcije PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Dodana je direktiva "ssl_reject_handshake", koja upućuje da se odbiju svi pokušaji pregovaranja SSL veza (na primjer, može se koristiti za odbijanje svih poziva s nepoznatim imenima hostova u SNI polju). poslužitelj { slušaj 443 ssl; ssl_odbaci_rukovanje uključeno; } poslužitelj { slušaj 443 ssl; server_name example.com; ssl_certifikat example.com.crt; ssl_certificate_key example.com.key; }
  • Direktiva proxy_smtp_auth dodana je proxyju e-pošte, omogućujući vam autentifikaciju korisnika na pozadini pomoću naredbe AUTH i mehanizma PLAIN SASL.
  • Dodana je direktiva "keepalive_time", koja ograničava ukupni životni vijek svake održavajuće veze, nakon čega će se veza zatvoriti (ne treba je brkati s keepalive_timeout, koja definira vrijeme neaktivnosti nakon kojeg se održavajuća veza zatvara).
  • Dodana varijabla $connection_time, preko koje možete dobiti informaciju o trajanju veze u sekundama s preciznošću od milisekunde.
  • U direktive “proxy_cache_path”, “fastcgi_cache_path”, “scgi_cache_path” i “uwsgi_cache_path” dodan je parametar “min_free” koji regulira veličinu predmemorije na temelju određivanja minimalne veličine slobodnog prostora na disku.
  • Direktive "lingering_close", "lingering_time" i "lingering_timeout" prilagođene su za rad s HTTP/2.
  • Kod za obradu veze u HTTP/2 blizak je implementaciji HTTP/1.x. Podrška za pojedinačne postavke "http2_recv_timeout", "http2_idle_timeout" i "http2_max_requests" ukinuta je 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".
  • Dodana je nova opcija naredbenog retka "-e", koja vam omogućuje da odredite alternativnu datoteku za pisanje dnevnika pogrešaka, koji će se koristiti umjesto dnevnika navedenog u postavkama. Umjesto naziva datoteke, možete navesti posebnu vrijednost stderr.

Izvor: opennet.ru

Dodajte komentar