Izdanje nginx 1.30.0 i fork FreeNginx 1.30.0

Nakon godinu dana razvoja, objavljena je nova stabilna grana visokoučinkovitog HTTP poslužitelja i multiprotokolnog proxy poslužitelja, nginx 1.30.0. Uključuje promjene akumulirane u glavnoj grani 1.29.x. U budućnosti će sve promjene stabilne grane 1.30 biti usmjerene na ispravljanje ozbiljnih grešaka i ranjivosti. Glavna grana nginx 1.31 uskoro će biti objavljena, gdje će se nastaviti razvoj novih značajki. Za redovite korisnike kojima nije potrebno osigurati kompatibilnost s modulima trećih strana, preporučujemo korištenje glavne grane, koja je osnova za komercijalna izdanja Nginx Plus svaka tri mjeseca. nginx je napisan u C-u i distribuira se pod BSD licencom.

Prema veljačkom izvješću Netcrafta, postoji otprilike 321 milijun web stranica koje koriste nginx (245 milijuna prije godinu dana, 243 milijuna prije dvije godine i 289 milijuna prije tri godine). Nginx koristi 16.08% svih aktivnih web stranica (17.89% prije godinu dana, 18.15% prije dvije godine i 18.94% prije tri godine), što ga svrstava na drugo mjesto po popularnosti u ovoj kategoriji (Apacheov udio je 13.27% (16.03% prije godinu dana, 20.09% prije dvije godine i 20.52% prije tri godine), Cloudflareov 20.62% (17.81%, 14.12%, 11.32%), a Googleov 10.65% (9.89%, 10.41%, 9.89%).

Kada se uzmu u obzir sve stranice, nginx zadržava vodstvo i zauzima 22.65% tržišta (prije godinu dana 20.48%, prije dvije godine - 22.31%, prije tri godine - 25.94%), dok Apacheov udio iznosi 12.19% (16.03%, 20.17%, 20.58%), Cloudflare - 15.27% (12.87%, 11.24%, 10.17%), OpenResty (platforma temeljena na nginxu i LuaJIT-u) - 8.01% (9.36%, 7.93%, 7.94%).

Među milijun najposjećenijih web stranica na svijetu, NGINX je drugi s udjelom od 19.85% (prije godinu dana 20.37%, prije dvije godine 20.63% i prije tri godine 21.37%). Cloudflare drži prvo mjesto s 26.84% (22.32%, 22.59% i 21.62%). Udio Apache httpd-a je 15.84% (17.95%, 20.09% i 21.18%). Izdanje nginx 1.30.0 i fork FreeNginx 1.30.0

Prema W3Techsu, NGINX koristi 32.8% od milijun najpopularnijih web stranica (u travnju prošle godine ta je brojka iznosila 33.8%, a godinu prije 34.3%). Udio Apachea smanjio se s 26.3% na 23.9% tijekom godine, udio Microsoft IIS-a pao je s 4% na 3.4%, a udio Caddyja s 0.3% na 0.2%. Udio Node.jsa povećao se s 4.4% na 6.0%, a udio LiteSpeeda s 14.6% na 15.2%.

Najznačajnija poboljšanja dodana tijekom razvoja 1.29.x uzvodne grane:

  • Dodana je podrška za TLS proširenje ECH (Encrypted ClientHello), evoluciju proširenja ESNI (Encrypted Server Name Indication) koje se koristi za šifriranje informacija o parametrima TLS sesije, kao što je traženi naziv domene. Ključna razlika između ECH-a i ESNI-ja je u tome što ECH šifrira cijelu TLS poruku ClientHello umjesto pojedinačnih polja. To pomaže u blokiranju curenja kroz polja koja nisu pokrivena ESNI-jem, kao što je polje PSK (Pre-Shared Key). ECH se omogućuje određivanjem direktive "ssl_ech_file" u konfiguracijskoj datoteci ECHConfig u PEM formatu. Podrška je dostupna pri korištenju OpenSSL verzija s ECH-om.
  • Dodana je podrška za protokol Multipath TCP (MPTCP), koji omogućuje istovremenu dostavu paketa putem više ruta i različitih mrežnih sučelja. Parametar "multipath" dodan je direktivi "listen".
  • Dodana je mogućnost povezivanja klijentskih sesija s istim poslužiteljima u grupi. Dostupne su tri metode: "kolačić" - prenosi podatke o odabranom poslužitelja putem navedenog kolačića; "route" — proxy poslužitelj dodjeljuje rutu klijentu nakon primitka prvog zahtjeva; "learn" — nginx analizira odgovore s uzvodnog poslužitelja i pamti sesije koje je pokrenuo poslužitelj. Za konfiguriranje vezanja, direktiva "sticky" dodana je u blok "upstream" modula "http", a parametri "route" i "drain" dodani su u direktivu "server".
  • Dodana je direktiva "early_hints", a podrška za HTTP kod 103 implementirana je u odgovorima proxyja i gRPC backendova. Kod 103 omogućuje klijentu da bude odmah nakon zahtjeva obaviješten o sadržaju određenih HTTP zaglavlja, bez čekanja da poslužitelj dovrši sve operacije povezane sa zahtjevom i počne posluživati ​​sadržaj. To se može koristiti za davanje savjeta o elementima povezanim s vraćenom stranicom koji se mogu unaprijed učitati (na primjer, poveznice na CSS i JavaScript korištene na stranici). Nakon što je obaviješten o takvim resursima, preglednik će ih početi preuzimati bez čekanja da glavna stranica završi s posluživanjem, smanjujući ukupno vrijeme obrade zahtjeva.
  • Dodane su direktive add_header_inherit i add_trailer_inherit. One vam omogućuju promjenu pravila nasljeđivanja za vrijednosti navedene u direktivama add_header i add_trailer. Parametar "off" onemogućuje nasljeđivanje vrijednosti, dok parametar "merge" omogućuje dodavanje vrijednosti s prethodne razine vrijednostima na trenutnoj razini.
  • Dodana je direktiva "ssl_certificate_compression" za kontrolu kompresije TLS certifikati.
  • Dodana je direktiva max_headers koja ograničava maksimalni broj HTTP zaglavlja u zahtjevu. Ako se prekorači ograničenje, vraća se greška 400 (loš zahtjev). Ova značajka je prenesena iz FreeNginxa.
  • Dodane su varijable $request_port i $is_request_port. Prva varijabla sadrži broj porta iz URI komponente ili zaglavlja "Host", a druga sadrži ":" ako varijabla $request_port nije prazna.
  • Dodane su varijable $ssl_sigalg i $ssl_client_sigalg, koje sadrže naziv algoritma za generiranje digitalnog potpisa za TLS vezu.
  • Parametar "volatile" dodan je direktivi "geo", čime je onemogućeno predmemoriranje varijabli. Zamjenski znakovi sada su dopušteni u direktivi "include" navedenoj unutar bloka "geo".
  • Direktiva "keepalive" je omogućena prema zadanim postavkama u bloku "upstream". Direktiva "keepalive" korištena u bloku "upstream" ažurirana je kako bi uključila parametar "local". Kada je ovaj parametar naveden, umjesto dijeljenja jedne veze sa zajedničkim uzvodnim poslužiteljem na koji se upućuje u različitim blokovima lokacije i poslužitelja, svaki blok održava zasebnu uzvodnu vezu.
  • Kada se koristi u proxy načinu rada, zadana verzija protokola je HTTP/1.1 s omogućenim keep-alive načinom rada (podrška za keep-alive je omogućena prema zadanim postavkama u modulu ngx_http_proxy_module, vrijednost "1.1" je postavljena u direktivi "proxy_http_version", a zadano slanje zaglavlja "Connection" je zaustavljeno).
  • Modul ngx_http_proxy sada podržava HTTP/2 protokol, što vam omogućuje korištenje HTTP/2 prilikom pristupanja pozadinskim sustavima.
  • Mogućnost učitavanja kriptografskih ključeva iz hardverskih tokena omogućena je korištenjem OpenSSL biblioteke kao pružatelja usluga.
  • Implementacija QUIC protokola ažurirana je kako bi podržala 0-RTT način rada, dostupan na sustavima s OpenSSL 3.5.1 i novijim izdanjima.
  • Dodana je mogućnost izgradnje s kriptografskom bibliotekom AWS-LC, koju je razvio Amazon.
  • Kompresija TLSv1.3 certifikata je onemogućena prema zadanim postavkama.
  • Osigurana je kompatibilnost s OpenSSL 4.0 bibliotekom.

Osim toga, vrijedi spomenuti izlazak FreeNginx 1.30.0, forka Nginxa. Razvoj forka vodi Maxim Dunin, jedan od ključnih Nginx programera. FreeNginx se pozicionira kao nekomercijalni projekt, osiguravajući razvoj Nginx kodne baze bez korporativnog uplitanja. FreeNginx kod i dalje se distribuira pod BSD licencom. Promjene u FreeNginx 1.30 uključuju: dodanu podršku za ECH (Encrypted Client Hello) TLS ekstenziju; poboljšanu obradu direktive limit_rate; dodane direktive send_min_rate i client_body_min_rate; implementiranu mogućnost ograničavanja broja veza i brzine zahtjeva u proxyju za poštu; dodanu podršku za GeoIP2 bazu podataka u GeoIP modulu; i pojačanu sigurnost za XSLT modul.

Izvor: opennet.ru

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