nginx 1.20.0 kutolewa

Baada ya mwaka wa maendeleo, tawi jipya thabiti la seva ya HTTP ya utendaji wa juu na seva ya wakala ya itifaki nyingi nginx 1.20.0 imeanzishwa, ambayo inajumuisha mabadiliko yaliyokusanywa katika tawi kuu 1.19.x. Katika siku zijazo, mabadiliko yote katika tawi imara 1.20 yatahusiana na uondoaji wa makosa makubwa na udhaifu. Hivi karibuni tawi kuu la nginx 1.21 litaundwa, ambalo uendelezaji wa vipengele vipya utaendelea. Kwa watumiaji wa kawaida ambao hawana kazi ya kuhakikisha utangamano na moduli za tatu, inashauriwa kutumia tawi kuu, kwa misingi ambayo releases ya bidhaa za kibiashara Nginx Plus huundwa kila baada ya miezi mitatu.

Kulingana na ripoti ya Machi kutoka Netcraft, nginx inatumika kwenye 20.15% ya tovuti zote zinazofanya kazi (mwaka mmoja uliopita 19.56%, miaka miwili iliyopita 20.73%), ambayo inalingana na nafasi ya pili kwa umaarufu katika kitengo hiki (sehemu ya Apache inalingana na 25.38% (mwaka mmoja uliopita 27.64%), Google - 10.09%, Cloudflare - 8.51%.Wakati huo huo, wakati wa kuzingatia tovuti zote, nginx inabakia uongozi wake na inachukua 35.34% ya soko (mwaka mmoja uliopita 36.91%, miaka miwili iliyopita - 27.52%), wakati sehemu ya Apache inalingana na 25.98%, OpenResty ( jukwaa kulingana na nginx na LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Miongoni mwa tovuti milioni zilizotembelewa zaidi duniani, sehemu ya nginx ni 25.55% (mwaka mmoja uliopita 25.54%, miaka miwili iliyopita 26.22%). Hivi sasa, takriban tovuti milioni 419 zinaendesha Nginx (milioni 459 mwaka mmoja uliopita). Kulingana na W3Techs, nginx inatumika kwenye 33.7% ya tovuti kati ya milioni zilizotembelewa zaidi, mnamo Aprili mwaka jana takwimu hii ilikuwa 31.9%, mwaka uliotangulia - 41.8% (kupungua kunaelezewa na mpito wa kutenganisha uhasibu wa Cloudflare http seva). Sehemu ya Apache ilishuka kwa mwaka kutoka 39.5% hadi 34%, na sehemu ya Microsoft IIS kutoka 8.3% hadi 7%. Hisa za LiteSpeed ​​zilikua kutoka 6.3% hadi 8.4%, na Node.js kutoka 0.8% hadi 1.2%. Katika Urusi, nginx hutumiwa kwenye 79.1% ya maeneo yaliyotembelewa zaidi (mwaka mmoja uliopita - 78.9%).

Maboresho mashuhuri zaidi yaliyoongezwa wakati wa ukuzaji wa tawi la 1.19.x la juu:

  • Imeongeza uwezo wa kuthibitisha vyeti vya mteja kwa kutumia huduma za nje kulingana na itifaki ya OCSP (Itifaki ya Hali ya Cheti Mtandaoni). Ili kuwezesha ukaguzi, maagizo ya ssl_opsp yanapendekezwa, ili kusanidi saizi ya akiba - ssl_opsp_cache, ili kufafanua upya URL ya kidhibiti cha OCSP kilichobainishwa kwenye cheti - ssl_osp_responder.
  • Moduli ya ngx_stream_set_module imejumuishwa, ambayo inakuwezesha kugawa thamani kwa seva ya kutofautiana { sikiliza 12345; kuweka $ kweli 1; }
  • Agizo la proxy_cookie_flags limeongezwa ili kubainisha alama za Vidakuzi katika miunganisho ya seva mbadala. Kwa mfano, ili kuongeza alama ya "httponly" kwa Kuki "moja", na alama za "nosecure" na "samesite=strict" kwa Vidakuzi vingine vyote, unaweza kutumia muundo ufuatao: proxy_cookie_flags moja httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Maelekezo sawa ya userid_flags ya kuongeza bendera kwa Vidakuzi pia yanatekelezwa kwa moduli ya ngx_http_userid.

  • Maagizo yaliyoongezwa "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" na "uwsgi_ssl_conf_command", ambayo unaweza kuweka vigezo kiholela vya kusanidi OpenSSL. Kwa mfano, kuweka kipaumbele cha sipheri za ChaCha na usanidi wa hali ya juu wa misimbo ya TLSv1.3, unaweza kubainisha ssl_conf_command Chaguzi PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Maagizo ya "ssl_reject_handshake" yameongezwa, ambayo yanaelekeza kukataa majaribio yote ya kujadili miunganisho ya SSL (kwa mfano, inaweza kutumika kukataa simu zote zilizo na majina ya seva pangishi yasiyojulikana katika sehemu ya SNI). seva {sikiliza 443 ssl; ssl_reject_handshake on; } seva {sikiliza 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Maagizo ya proxy_smtp_auth yameongezwa kwa seva mbadala ya barua, kukuruhusu kuthibitisha mtumiaji kwenye upande wa nyuma kwa kutumia amri ya AUTH na utaratibu wa PLAIN SASL.
  • Imeongeza maagizo ya "keepalive_time", ambayo yanaweka kikomo jumla ya maisha ya kila muunganisho wa kuendelea kuwa hai, baada ya hapo muunganisho utafungwa (usichanganywe na keepalive_timeout, ambayo inafafanua muda wa kutotumika ambao baada ya hapo muunganisho wa kuweka-hai umefungwa).
  • Umeongeza tofauti ya $connection_time, ambayo unaweza kupata taarifa kuhusu muda wa muunganisho kwa sekunde kwa usahihi wa millisecond.
  • Kigezo cha "min_bure" kimeongezwa kwenye maelekezo ya "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" na "uwsgi_cache_path", ambayo hudhibiti ukubwa wa kache kulingana na kubainisha ukubwa wa chini zaidi wa nafasi ya bure ya diski.
  • Maagizo ya "lingering_close", "lingering_time" na "lingering_timeout" yamebadilishwa ili kufanya kazi na HTTP/2.
  • Msimbo wa kuchakata muunganisho katika HTTP/2 uko karibu na utekelezaji wa HTTP/1.x. Usaidizi wa mipangilio ya mtu binafsi "http2_recv_timeout", "http2_idle_timeout" na "http2_max_requests" umekataliwa kwa ajili ya maagizo ya jumla "keepalive_timeout" na "keepalive_requests". Mipangilio "http2_max_field_size" na "http2_max_header_size" imeondolewa na "large_client_header_buffers" inapaswa kutumika badala yake.
  • Imeongeza chaguo jipya la mstari wa amri "-e", ambayo inakuwezesha kutaja faili mbadala kwa kuandika logi ya makosa, ambayo itatumika badala ya logi iliyotajwa kwenye mipangilio. Badala ya jina la faili, unaweza kutaja thamani maalum stderr.

Chanzo: opennet.ru

Kuongeza maoni