Po roku vývoja bola predstavená nová stabilná vetva vysokovýkonného HTTP servera a viacprotokolového proxy servera nginx 1.20.0, ktorá zahrnula zmeny z hlavnej vetvy 1.19.x. V budúcnosti budú všetky zmeny v stabilnej vetve 1.20 zamerané na odstránenie závažných chýb a zraniteľností. Čoskoro bude vytvorená hlavná vetva nginx 1.21, v ktorej bude pokračovať vývoj nových možností. Pre bežných používateľov, ktorí nemajú úlohu zabezpečiť kompatibilitu s externými modulmi, sa odporúča používať hlavnú vetvu, na základe ktorej sa každé tri mesiace vytvárajú vydania komerčného produktu Nginx Plus.
Podľa marcovej správy spoločnosti Netcraft 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 popularite v tejto kategórii (podiel Apache zodpovedá 25.38% (pred rokom 27.64%), Google - 10.09%, Cloudflare - 8.51%. Pri zohľadnení všetkých stránok nginx zachováva prvenstvo a predstavuje 35.34% trhu (pred rokom 36.91%, pred dvoma rokmi 27.52%), zatiaľ čo podiel Apache predstavuje 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 podiel nginx predstavuje 25.55% (pred rokom 25.54%, pred dvoma rokmi 26.22%). V súčasnosti je pod správou nginx približne 419 miliónov stránok (pred rokom 459 miliónov). Podľa údajov W3Techs sa nginx používa na 33.7% stránok z milióna najnavštevovanejších, v apríli minulého roku tento ukazovateľ predstavoval 31.9%, pred dvoma rokmi 41.8% (pokles je vysvetlený prechodom na samostatné sledovanie http servera Cloudflare). Podiel Apache za rok klesol z 39.5% na 34%, a podiel Microsoft IIS z 8.3% na 7%. Podiel LiteSpeed vzrástol z 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%).
Najvýraznejšie vylepšenia pridané počas vytvárania hlavnej vetvy 1.19.x:
- Pridaná možnosť overovania klientských certifikátov s využitím externých služieb na základe protokolu OCSP (Online Certificate Status Protocol). Na aktiváciu overovania je navrhnutá direktíva ssl_ocsp, na nastavenie veľkosti cache - ssl_ocsp_cache, na predefinovanie URL OCSP spracovateľa uvedeného v certifikáte - ssl_ocsp_responder.
- Do zostavy bol zahrnutý modul ngx_stream_set_module, ktorý umožňuje priradiť hodnotu premennej server { listen 12345; set $true 1; }
- Pridaná direktíva proxy_cookie_flags na špecifikáciu vlajok pre cookies v proxovaných pripojeniach. Napríklad na pridanú k cookie „one“ vlajku „httponly“, a pre všetky ostatné cookies vlajku „nosecure“ a „samesite=strict“ môžete použiť konštrukciu: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;
Podobná direktíva userid_flags na pridanie vlajok k cookies bola tiež implementovaná 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 je možné zadať ľubovoľné parametre na konfiguráciu OpenSSL. Napríklad pre priorizáciu šifrov ChaCha a podrobnejšie nastavenie šifrov TLSv1.3 môžete uviesť ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
- Pridaná direktíva „ssl_reject_handshake“, ktorá nariaďuje odmietnuť všetky pokusy o dohodu SSL-pripojení (napríklad môže byť použitá na odmietanie všetkých prístupov s neznámymi názvami hostiteľov v poli SNI). 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; }
- Do poštového proxy bola pridaná direktíva proxy_smtp_auth, ktorá umožňuje autentifikovať používateľa na backendu pomocou príkazu AUTH a mechanizmu PLAIN SASL.
- Pridaná direktíva „keepalive_time“, ktorá obmedzuje celkový čas života každého keep-alive pripojenia, po ktorom bude pripojenie uzavreté (nemýliť si s keepalive_timeout, ktorý určuje čas neaktivity, po ktorom sa keep-alive pripojenie uzavrie).
- Bola pridaná premenná $connection_time, prostredníctvom ktorej je možné získať informácie o dĺžke spojenia v sekundách s milisekundovou presnosťou.
- 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ť cache na základe určenia minimálnej veľkosti voľného diskového priestoru.
- Direktívy „lingering_close“, „lingering_time“ a „lingering_timeout“ boli prispôsobené pre prácu s HTTP/2.
- Kód spracovania pripojení v HTTP/2 bol priblížený k implementácii HTTP/1.x. Podpora samostatných nastavení „http2_recv_timeout“, „http2_idle_timeout“ a „http2_max_requests“ bola ukončená v prospech spoločných direktív „keepalive_timeout“ a „keepalive_requests“. Odstránené nastavenia „http2_max_field_size“ a „http2_max_header_size“, ktoré by mali byť nahradené „large_client_header_buffers“.
- Pridaná nová voľba príkazového riadku „-e“, ktorá umožňuje určiť alternatívny súbor pre záznam chýb, ktorý sa použije namiesto záznamu nastaveného v konfigurácii. Namiesto názvu súboru je možné zadať osobitnú hodnotu stderr.
Zdroj: opennet.ru
