izdaja nginx 1.20.0

Po enem letu razvoja je bila uvedena nova stabilna veja visoko zmogljivega strežnika HTTP in proxy strežnika z več protokoli nginx 1.20.0, ki vključuje spremembe, nabrane v glavni veji 1.19.x. V prihodnje bodo vse spremembe v stabilni veji 1.20 povezane z odpravo resnih napak in ranljivosti. Kmalu bo oblikovana glavna veja nginx 1.21, v kateri se bo nadaljeval razvoj novih funkcij. Za običajne uporabnike, ki nimajo naloge zagotavljanja združljivosti z moduli tretjih oseb, je priporočljivo uporabiti glavno vejo, na podlagi katere se vsake tri mesece oblikujejo izdaje komercialnega izdelka Nginx Plus.

Glede na marčevsko poročilo podjetja Netcraft se nginx uporablja na 20.15 % vseh aktivnih spletnih mest (pred letom dni 19.56 %, pred dvema letoma 20.73 %), kar ustreza drugemu mestu po priljubljenosti v tej kategoriji (delež Apache ustreza 25.38 % (pred enim letom 27.64%), Google - 10.09%, Cloudflare - 8.51%. Hkrati pa nginx ob upoštevanju vseh spletnih mest ohranja vodstvo in zaseda 35.34% trga (pred enim letom 36.91%, pred dvema letoma - 27.52%), medtem ko delež Apache ustreza 25.98%, OpenResty ( platforma, ki temelji na nginx in LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Med milijonom najbolj obiskanih strani na svetu je delež nginxa 25.55 % (pred letom dni 25.54 %, pred dvema letoma 26.22 %). Trenutno približno 419 milijonov spletnih mest uporablja Nginx (459 milijonov pred letom). Po podatkih W3Techs se nginx uporablja na 33.7% spletnih mest od milijona najbolj obiskanih, aprila lani je ta številka znašala 31.9%, leto prej - 41.8% (padec je razložen s prehodom na ločeno računovodstvo Cloudflare http strežnik). Delež Apache je med letom padel z 39.5 % na 34 %, delež Microsoft IIS pa z 8.3 % na 7 %. Delež LiteSpeed ​​je narasel s 6.3 % na 8.4 %, Node.js pa z 0.8 % na 1.2 %. V Rusiji se nginx uporablja na 79.1% najbolj obiskanih spletnih mest (pred letom dni - 78.9%).

Najbolj opazne izboljšave, dodane med razvojem veje 1.19.x navzgor:

  • Dodana možnost preverjanja odjemalskih potrdil z uporabo zunanjih storitev, ki temeljijo na protokolu OCSP (Online Certificate Status Protocol). Za omogočanje preverjanja je predlagana direktiva ssl_ocsp, za konfiguracijo velikosti predpomnilnika - ssl_ocsp_cache, za ponovno določitev URL-ja upravljalnika OCSP, navedenega v potrdilu - ssl_ocsp_responder.
  • Vključen je modul ngx_stream_set_module, ki omogoča dodelitev vrednosti spremenljivki strežnik { listen 12345; nastavite $true 1; }
  • Dodana direktiva proxy_cookie_flags za določanje zastavic za piškotke v povezavah s posredniškim strežnikom. Na primer, če želite piškotku »one« dodati zastavico »httponly« ter zastavici »nosecure« in »samesite=strict« za vse druge piškotke, lahko uporabite naslednjo konstrukcijo: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strogo;

    Podobna direktiva userid_flags za dodajanje zastavic piškotkom je implementirana tudi za modul ngx_http_userid.

  • Dodane direktive “ssl_conf_command”, “proxy_ssl_conf_command”, “grpc_ssl_conf_command” in “uwsgi_ssl_conf_command”, s katerimi lahko nastavite poljubne parametre za konfiguracijo OpenSSL. Če želite na primer dati prednost šifram ChaCha in napredni konfiguraciji šifre TLSv1.3, lahko podate ssl_conf_command Možnosti PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Dodana direktiva "ssl_reject_handshake", ki naroči zavrnitev vseh poskusov pogajanja o povezavah SSL (lahko se na primer uporabi za zavrnitev vseh klicev z neznanimi imeni gostiteljev v polju SNI). strežnik { poslušaj 443 ssl; ssl_reject_handshake vklopljen; } strežnik { poslušaj 443 ssl; ime_strežnika example.com; ssl_certifikat example.com.crt; ssl_certificate_key example.com.key; }
  • Direktiva proxy_smtp_auth je bila dodana poštnemu posredniku, kar vam omogoča avtentikacijo uporabnika v ozadju z uporabo ukaza AUTH in mehanizma PLAIN SASL.
  • Dodana je direktiva "keepalive_time", ki omejuje skupno življenjsko dobo vsake vzdrževalne povezave, po kateri se povezava zapre (ne zamenjujte s keepalive_timeout, ki določa čas nedejavnosti, po katerem se vzdrževalna povezava zapre).
  • Dodana spremenljivka $connection_time, preko katere lahko dobite informacijo o trajanju povezave v sekundah z natančnostjo milisekunde.
  • V direktive “proxy_cache_path”, “fastcgi_cache_path”, “scgi_cache_path” in “uwsgi_cache_path” je bil dodan parameter “min_free”, ki uravnava velikost predpomnilnika na podlagi določitve najmanjše velikosti prostega prostora na disku.
  • Direktive "lingering_close", "lingering_time" in "lingering_timeout" so bile prilagojene za delo s HTTP/2.
  • Koda za obdelavo povezave v HTTP/2 je podobna izvedbi HTTP/1.x. Podpora za posamezne nastavitve "http2_recv_timeout", "http2_idle_timeout" in "http2_max_requests" je bila opuščena v korist splošnih direktiv "keepalive_timeout" in "keepalive_requests". Nastavitve »http2_max_field_size« in »http2_max_header_size« sta bili odstranjeni in namesto tega je treba uporabiti »large_client_header_buffers«.
  • Dodana nova možnost ukazne vrstice »-e«, ki vam omogoča, da določite alternativno datoteko za pisanje dnevnika napak, ki bo uporabljena namesto dnevnika, določenega v nastavitvah. Namesto imena datoteke lahko podate posebno vrednost stderr.

Vir: opennet.ru

Dodaj komentar