Objavljen je nginx 1.20.0

Nakon godinu dana razvoja predstavljena je nova stabilna grana visokoučinkovitog HTTP poslužitelja i više protokola proxy poslužitelja nginx 1.20.0, koja je obuhvatila promjene prikupljene u glavnoj grani 1.19.x. U budućnosti će sve promjene u stabilnoj grani 1.20 biti vezane uz ispravljanje ozbiljnih grešaka i ranjivosti. Uskoro će biti formirana glavna grana nginx 1.21, u kojoj će se nastaviti razvoj novih mogućnosti. Za obične korisnike, koji nemaju zadatak osigurati kompatibilnost s vanjskim modulima, preporučuje se korištenje glavne grane, na kojoj se svaka tri mjeseca oblikuju izdanja komercijalnog proizvoda Nginx Plus.

Prema ožujskom izvještaju kompanije Netcraft, nginx se koristi na 20.15% svih aktivnih web stranica (prije godinu dana 19.56%, prije dvije godine 20.73%), što odgovara drugom mjestu po popularnosti u ovoj kategoriji (dijela Apache-a iznosi 25.38% (prije godinu dana 27.64%), Google — 10.09%, Cloudflare — 8.51%. Također, kada se razmatraju sve web stranice, nginx zadržava vodstvo i zauzima 35.34% tržišta (prije godinu dana 36.91%, prije dvije godine — 27.52%), dok dio Apache-a iznosi 25.98%, OpenResty (platforma temeljen na nginx-u i LuaJIT) — 6.55%, Microsoft IIS — 5.96%.

Među milijun najposjećenijih web stranica na svijetu, udio nginx-a iznosi 25.55% (prije godinu dana 25.54%, prije dvije godine 26.22%). Trenutno je pod upravom nginx-a oko 419 milijuna web stranica (prije godinu dana 459 milijuna). Prema podacima W3Techs, nginx se koristi na 33.7% web stranica iz milijuna najposjećenijih, u travnju prošle godine taj je pokazatelj iznosio 31.9%, a prekobuduću — 41.8% (pad se objašnjava prijelazom na odvojeno praćenje HTTP poslužitelja Cloudflare). Udio Apache-a je tijekom godine pao s 39.5% na 34%, a udio Microsoft IIS-a s 8.3% na 7%. Udio LiteSpeed je porastao s 6.3% na 8.4%, a Node.js s 0.8% na 1.2%. U Rusiji se nginx koristi na 79.1% najposjećenijih web stranica (prije godinu dana — 78.9%).

Najznačajnija poboljšanja dodana tijekom formiranja glavne grane 1.19.x:

  • Dodana je mogućnost provjere klijentnih certifikata uz pomoć vanjskih usluga na temelju protokola OCSP (Online Certificate Status Protocol). Za uključivanje provjere predložena je direktiva ssl_ocsp, za postavljanje veličine predmemorije — ssl_ocsp_cache, za preusmjeravanje URL-a OCSP obrađivača navedenog u certifikatu — ssl_ocsp_responder.
  • Uključeni su ngx_stream_set_module, koji omogućava postavljanje vrijednosti varijable server { listen 12345; set $true 1; }
  • Dodana je direktiva proxy_cookie_flags za određivanje zastavica za kolačiće u proxy vezama. Na primjer, za dodavanje zastavice «httponly» kolačiću «one», a za sve ostale kolačiće zastavice «nosecure» i «samesite=strict» može se koristiti konstrukcija: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Slična direktiva userid_flags za dodavanje zastavica 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», s kojima je moguće postaviti slobodne parametre za konfiguraciju OpenSSL-a. Na primjer, za prioritizaciju šifri ChaCha i naprednu konfiguraciju šifri TLSv1.3 može se navesti ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Dodana je direktiva «ssl_reject_handshake», koja nalaže odbijanje svih pokušaja pregovaranja SSL-veza (na primjer, može se koristiti za odbijanje svih zahtjeva s nepoznatim nazivima hostova 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; }
  • U poštanskom proxy-u dodana je direktiva proxy_smtp_auth, koja omogućava autentifikaciju korisnika na backendu putem AUTH naredbe i PLAIN SASL mehanizma.
  • Dodana je direktiva «keepalive_time», koja ograničava ukupno vrijeme trajanja svake keep-alive veze, nakon čega će veza biti zatvorena (ne miješati s keepalive_timeout, koji definira vrijeme neaktivnosti nakon kojeg se keep-alive veza zatvara).
  • Dodana je varijabla $connection_time, koja omogućava dobivanje informacija o trajanju veze u sekundama s milisekundnom točnošću.
  • U direktive «proxy_cache_path», «fastcgi_cache_path», «scgi_cache_path» i «uwsgi_cache_path» dodat je parametar «min_free», koji regulira veličinu keša na temelju definicije minimalne veličine slobodnog diska.
  • Direktive «lingering_close», «lingering_time» i «lingering_timeout» prilagođene su za rad s HTTP/2.
  • Kod obrade veza u HTTP/2 je približno isti kao i implementacija HTTP/1.x. Podrška za pojedinačne konfiguracije „http2_recv_timeout“, „http2_idle_timeout“ i „http2_max_requests“ ukinuta je u korist zajedničkih direktiva „keepalive_timeout“ i „keepalive_requests“. Uklonjene su konfiguracije „http2_max_field_size“ i „http2_max_header_size“, umjesto kojih treba koristiti „large_client_header_buffers“.
  • Dodana je nova opcija narednog retka „-e“, koja omogućava da se specificira alternativna datoteka za zapis loga grešaka, koja će se koristiti umjesto loga zadatog u postavkama. Umjesto imena datoteke može se navesti posebno značenje stderr.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster