vydání nginx 1.20.0

Po roce vývoje byla představena nová stabilní větev vysoce výkonného HTTP serveru a multiprotokolového proxy serveru nginx 1.20.0, která zahrnuje změny nashromážděné v hlavní větvi 1.19.x. Všechny změny ve stabilní větvi 1.20 budou v budoucnu souviset s odstraňováním závažných chyb a zranitelností. Brzy se vytvoří hlavní větev nginx 1.21, ve které bude pokračovat vývoj nových funkcí. Pro běžné uživatele, kteří nemají za úkol zajišťovat kompatibilitu s moduly třetích stran, se doporučuje použít hlavní větev, na jejímž základě se každé tři měsíce tvoří verze komerčního produktu Nginx Plus.

Podle březnové zprávy Netcraftu je nginx používán na 20.15 % všech aktivních stránek (před rokem 19.56 %, před dvěma lety 20.73 %), což odpovídá druhému místu v oblíbenosti v této kategorii (podíl Apache odpovídá 25.38 % (před rokem 27.64 %), Google – 10.09 %, Cloudflare – 8.51 %. Zároveň, když vezmeme v úvahu všechny weby, nginx si zachovává své vedoucí postavení a zaujímá 35.34 % trhu (před rokem 36.91 %, před dvěma lety – 27.52 %), zatímco podíl Apache odpovídá 25.98 %, OpenResty (platforma založená na nginx a LuaJIT.) - 6.55 %, Microsoft IIS - 5.96 %.

Mezi milionem nejnavštěvovanějších stránek na světě je podíl nginx 25.55 % (před rokem 25.54 %, před dvěma lety 26.22 %). V současnosti Nginx provozuje asi 419 milionů webových stránek (před rokem 459 milionů). Podle W3Techs se nginx používá na 33.7 % webů z milionu nejnavštěvovanějších, v dubnu loňského roku to bylo 31.9 %, předloni - 41.8 % (pokles je vysvětlen přechodem na samostatné účtování Cloudflare http server). Podíl Apache klesl během roku z 39.5 % na 34 % a podíl Microsoft IIS z 8.3 % na 7 %. Podíl LiteSpeed ​​vzrostl z 6.3 % na 8.4 % a Node.js z 0.8 % na 1.2 %. V Rusku se nginx používá na 79.1 % nejnavštěvovanějších stránek (před rokem - 78.9 %).

Nejpozoruhodnější vylepšení přidaná během vývoje upstream větve 1.19.x:

  • Přidána možnost ověřování klientských certifikátů pomocí externích služeb založených na protokolu OCSP (Online Certificate Status Protocol). Pro povolení kontroly je navržena direktiva ssl_ocsp pro konfiguraci velikosti mezipaměti - ssl_ocsp_cache, pro předefinování URL obslužné rutiny OCSP uvedené v certifikátu - ssl_ocsp_responder.
  • Součástí je modul ngx_stream_set_module, který umožňuje přiřadit hodnotu proměnné server { listen 12345; nastavit $true 1; }
  • Přidána direktiva proxy_cookie_flags k určení příznaků pro soubory cookie v připojení přes proxy. Chcete-li například přidat příznak „httponly“ do souboru cookie „one“ a příznaky „nosecure“ a „samesite=strict“ pro všechny ostatní soubory cookie, můžete použít následující konstrukci: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Podobná direktiva userid_flags pro přidávání příznaků do souborů cookie je implementována také pro modul ngx_http_userid.

  • Přidány direktivy „ssl_conf_command“, „proxy_ssl_conf_command“, „grpc_ssl_conf_command“ a „uwsgi_ssl_conf_command“, pomocí kterých můžete nastavit libovolné parametry pro konfiguraci OpenSSL. Chcete-li například upřednostnit šifry ChaCha a pokročilou konfiguraci šifer TLSv1.3, můžete zadat volby ssl_conf_command PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Přidána direktiva "ssl_reject_handshake", která instruuje odmítnout všechny pokusy o vyjednání SSL připojení (může být například použita k odmítnutí všech hovorů s neznámými názvy hostitelů v poli SNI). server { poslouchat 443 ssl; ssl_reject_handshake on; } server { poslouchat 443 ssl; název_serveru example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Do poštovního proxy byla přidána direktiva proxy_smtp_auth, která vám umožňuje autentizovat uživatele na backendu pomocí příkazu AUTH a mechanismu PLAIN SASL.
  • Přidána direktiva „keepalive_time“, která omezuje celkovou dobu trvání každého keep-alive připojení, po které bude připojení uzavřeno (neplést s keepalive_timeout, který definuje dobu nečinnosti, po které je keep-alive připojení uzavřeno).
  • Přidána proměnná $connection_time, jejímž prostřednictvím můžete získat informace o délce připojení v sekundách s přesností na milisekundy.
  • Do direktiv „proxy_cache_path“, „fastcgi_cache_path“, „scgi_cache_path“ a „uwsgi_cache_path“ byl přidán parametr „min_free“, který reguluje velikost mezipaměti na základě určení minimální velikosti volného místa na disku.
  • Direktivy "lingering_close", "lingering_time" a "lingering_timeout" byly přizpůsobeny pro práci s HTTP/2.
  • Kód zpracování připojení v HTTP/2 je blízký implementaci HTTP/1.x. Podpora jednotlivých nastavení „http2_recv_timeout“, „http2_idle_timeout“ a „http2_max_requests“ byla ukončena ve prospěch obecných direktiv „keepalive_timeout“ a „keepalive_requests“. Nastavení "http2_max_field_size" a "http2_max_header_size" byla odstraněna a místo toho by měl být použit "large_client_header_buffers".
  • Přidána nová volba příkazového řádku „-e“, která umožňuje zadat alternativní soubor pro zápis chybového protokolu, který bude použit místo protokolu uvedeného v nastavení. Místo názvu souboru můžete zadat speciální hodnotu stderr.

Zdroj: opennet.ru

Přidat komentář