Vydanie nginx 1.20.0

Po roku vývoja bola predstavená nová stabilná vetva vysokovýkonného HTTP servera a multiprotokolového proxy servera nginx 1.20.0, ktorá zahŕňa zmeny nahromadené v hlavnej vetve 1.19.x. V budúcnosti budú všetky zmeny v stabilnej vetve 1.20 súvisieť s odstránením závažných chýb a zraniteľností. Čoskoro sa vytvorí hlavná vetva nginx 1.21, v ktorej bude pokračovať vývoj nových funkcií. Pre bežných používateľov, ktorí nemajú za úlohu zabezpečiť kompatibilitu s modulmi tretích strán, sa odporúča použiť hlavnú vetvu, na základe ktorej sa každé tri mesiace tvoria vydania komerčného produktu Nginx Plus.

Podľa marcovej správy od Netcraftu sa nginx používa na 20.15 % všetkých aktívnych stránok (pred rokom 19.56 %, pred dvoma rokmi 20.73 %), čo zodpovedá druhému miestu v obľúbenosti v tejto kategórii (podiel Apache zodpovedá 25.38 % (pred rokom 27.64%), Google - 10.09%, Cloudflare - 8.51%. Zároveň, keď vezmeme do úvahy všetky stránky, nginx si zachováva svoje vedúce postavenie a zaberá 35.34% trhu (pred rokom 36.91%, pred dvoma rokmi - 27.52%), zatiaľ čo podiel Apache zodpovedá 25.98%, OpenResty (platforma založená na nginx a LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Medzi miliónom najnavštevovanejších stránok na svete je podiel nginx 25.55 % (pred rokom 25.54 %, pred dvoma rokmi 26.22 %). V súčasnosti používa Nginx približne 419 miliónov webových stránok (pred rokom 459 miliónov). Podľa W3Techs sa nginx používa na 33.7% stránok z milióna najnavštevovanejších, v apríli minulého roka to bolo 31.9%, rok predtým - 41.8% (pokles sa vysvetľuje prechodom na samostatné účtovníctvo Cloudflare http server). Podiel Apache medziročne klesol z 39.5 % na 34 % a podiel Microsoft IIS z 8.3 % na 7 %. Podiel LiteSpeed ​​vzrástol zo 6.3 % na 8.4 % a Node.js z 0.8 % na 1.2 %. V Rusku sa nginx používa na 79.1 % najnavštevovanejších stránok (pred rokom - 78.9 %).

Najpozoruhodnejšie vylepšenia pridané počas vývoja upstream vetvy 1.19.x:

  • Pridaná možnosť overovania klientskych certifikátov pomocou externých služieb založených na protokole OCSP (Online Certificate Status Protocol). Na umožnenie kontroly sa navrhuje direktíva ssl_ocsp na konfiguráciu veľkosti vyrovnávacej pamäte - ssl_ocsp_cache, na predefinovanie adresy URL obsluhy OCSP uvedenej v certifikáte - ssl_ocsp_responder.
  • Súčasťou je modul ngx_stream_set_module, ktorý vám umožňuje priradiť hodnotu premennej server { listen 12345; nastaviť $true 1; }
  • Pridaná direktíva proxy_cookie_flags na určenie príznakov pre súbory cookie v pripojeniach cez proxy. Napríklad, ak chcete pridať príznak „httponly“ k súboru cookie „one“ a príznaky „nosecure“ a „samesite=strict“ pre všetky ostatné súbory cookie, môžete použiť nasledujúcu konštrukciu: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Podobná smernica userid_flags na pridávanie príznakov do súborov cookie je implementovaná aj pre modul ngx_http_userid.

  • Pridané direktívy „ssl_conf_command“, „proxy_ssl_conf_command“, „grpc_ssl_conf_command“ a „uwsgi_ssl_conf_command“, pomocou ktorých môžete nastaviť ľubovoľné parametre pre konfiguráciu OpenSSL. Napríklad, ak chcete uprednostniť ChaCha šifry a pokročilú konfiguráciu TLSv1.3 šifier, môžete zadať ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Pridaná direktíva „ssl_reject_handshake“, ktorá dáva pokyn na odmietnutie všetkých pokusov o vyjednanie SSL spojení (môže sa napríklad použiť na odmietnutie všetkých hovorov s neznámymi názvami hostiteľov v poli SNI). server { počúvať 443 ssl; ssl_reject_handshake on; } server { počúvať 443 ssl; názov_servera example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Do poštového proxy bola pridaná direktíva proxy_smtp_auth, ktorá vám umožňuje autentifikovať užívateľa na backende pomocou príkazu AUTH a mechanizmu PLAIN SASL.
  • Pridaná direktíva „keepalive_time“, ktorá obmedzuje celkovú životnosť každého udržiavacieho pripojenia, po ktorom sa pripojenie zatvorí (nezamieňať s keepalive_timeout, ktorý definuje čas nečinnosti, po ktorom sa zatvorí keep-alive pripojenie).
  • Pridaná premenná $connection_time, prostredníctvom ktorej môžete získať informácie o trvaní pripojenia v sekundách s presnosťou na milisekundy.
  • Do direktív „proxy_cache_path“, „fastcgi_cache_path“, „scgi_cache_path“ a „uwsgi_cache_path“ bol pridaný parameter „min_free“, ktorý reguluje veľkosť vyrovnávacej pamäte na základe určenia minimálnej veľkosti voľného miesta na disku.
  • Direktívy "lingering_close", "lingering_time" a "lingering_timeout" boli prispôsobené na prácu s HTTP/2.
  • Kód spracovania pripojenia v HTTP/2 je blízky implementácii HTTP/1.x. Podpora individuálnych nastavení „http2_recv_timeout“, „http2_idle_timeout“ a „http2_max_requests“ bola ukončená v prospech všeobecných smerníc „keepalive_timeout“ a „keepalive_requests“. Nastavenia „http2_max_field_size“ a „http2_max_header_size“ boli odstránené a namiesto nich by sa mali použiť „large_client_header_buffers“.
  • Pridaná nová voľba príkazového riadku „-e“, ktorá vám umožňuje zadať alternatívny súbor na zapisovanie protokolu chýb, ktorý sa použije namiesto protokolu uvedeného v nastaveniach. Namiesto názvu súboru môžete zadať špeciálnu hodnotu stderr.

Zdroj: opennet.ru

Pridať komentár