lëshimi i nginx 1.20.0

Pas një viti zhvillimi, është prezantuar një degë e re e qëndrueshme e serverit HTTP me performancë të lartë dhe serverit proxy me shumë protokolla nginx 1.20.0, i cili përfshin ndryshimet e grumbulluara në degën kryesore 1.19.x. Në të ardhmen, të gjitha ndryshimet në degën e qëndrueshme 1.20 do të lidhen me eliminimin e gabimeve dhe dobësive serioze. Së shpejti do të formohet dega kryesore e nginx 1.21, në të cilën do të vazhdojë zhvillimi i veçorive të reja. Për përdoruesit e zakonshëm që nuk kanë për detyrë të sigurojnë përputhshmëri me modulet e palëve të treta, rekomandohet përdorimi i degës kryesore, në bazë të së cilës lëshimet e produktit tregtar Nginx Plus formohen çdo tre muaj.

Sipas një raporti të marsit nga Netcraft, nginx përdoret në 20.15% të të gjitha faqeve aktive (një vit më parë 19.56%, dy vjet më parë 20.73%), që korrespondon me vendin e dytë në popullaritet në këtë kategori (pjesa e Apache korrespondon me 25.38% (një vit më parë 27.64%), Google - 10.09%, Cloudflare - 8.51%. Në të njëjtën kohë, kur merren parasysh të gjitha faqet, nginx ruan lidershipin e saj dhe zë 35.34% të tregut (një vit më parë 36.91%, dy vjet më parë - 27.52%), ndërsa pjesa e Apache korrespondon me 25.98%, OpenResty ( platformë e bazuar në nginx dhe LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Ndër milionat e vendeve më të vizituara në botë, pjesa e nginx është 25.55% (një vit më parë 25.54%, dy vjet më parë 26.22%). Aktualisht, rreth 419 milionë faqe interneti po funksionojnë Nginx (459 milionë një vit më parë). Sipas W3Techs, nginx përdoret në 33.7% të faqeve nga miliona më të vizituara, në prill të vitit të kaluar kjo shifër ishte 31.9%, një vit më parë - 41.8% (rënia shpjegohet me kalimin në kontabilitet të veçantë të Cloudflare http server). Pjesa e Apache ra gjatë vitit nga 39.5% në 34%, dhe pjesa e Microsoft IIS nga 8.3% në 7%. Pjesa e LiteSpeed ​​u rrit nga 6.3% në 8.4%, dhe Node.js nga 0.8% në 1.2%. Në Rusi, nginx përdoret në 79.1% të vendeve më të vizituara (një vit më parë - 78.9%).

Përmirësimet më të dukshme të shtuara gjatë zhvillimit të degës së sipërme 1.19.x:

  • U shtua aftësia për të verifikuar certifikatat e klientit duke përdorur shërbime të jashtme bazuar në protokollin OCSP (Online Certificate Status Protocol). Për të mundësuar kontrollin, propozohet direktiva ssl_ocsp, për të konfiguruar madhësinë e cache - ssl_ocsp_cache, për të ripërcaktuar URL-në e mbajtësit OCSP të specifikuar në certifikatë - ssl_ocsp_responder.
  • Përfshihet moduli ngx_stream_set_module, i cili ju lejon të caktoni një vlerë në serverin e ndryshueshëm { listen 12345; vendos $true 1; }
  • U shtua direktiva proxy_cookie_flags për të specifikuar flamujt për Cookies në lidhjet proksi. Për shembull, për të shtuar flamurin “httponly” në Cookie “one” dhe flamurin “nosecure” dhe “samesite=strict” për të gjitha Cookies tjera, mund të përdorni konstruksionin e mëposhtëm: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Një direktivë e ngjashme userid_flags për shtimin e flamujve në Cookies zbatohet gjithashtu për modulin ngx_http_userid.

  • U shtuan direktivat "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" dhe "uwsgi_ssl_conf_command", me të cilat mund të vendosni parametra arbitrare për konfigurimin e OpenSSL. Për shembull, për t'i dhënë përparësi shifrave ChaCha dhe konfigurimin e avancuar të shifrave TLSv1.3, mund të specifikoni ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • U shtua direktiva "ssl_reject_handshake", e cila udhëzon të refuzohen të gjitha përpjekjet për të negociuar lidhjet SSL (për shembull, mund të përdoret për të refuzuar të gjitha thirrjet me emra të panjohur të hosteve në fushën SNI). server {dëgjo 443 ssl; ssl_reject_handshake on; } server { listen 443 ssl; emri i serverit shembull.com; ssl_certificate shembull.com.crt; ssl_certificate_key shembull.com.key; }
  • Direktiva proxy_smtp_auth është shtuar në përfaqësuesin e postës, duke ju lejuar të vërtetoni përdoruesin në backend duke përdorur komandën AUTH dhe mekanizmin PLAIN SASL.
  • U shtua direktiva "keepalive_time", e cila kufizon jetëgjatësinë totale të secilës lidhje keep-alive, pas së cilës lidhja do të mbyllet (të mos ngatërrohet me keepalive_timeout, e cila përcakton kohën e pasivitetit pas së cilës mbyllet lidhja keep-alive).
  • U shtua ndryshorja $connection_time, përmes së cilës mund të merrni informacion për kohëzgjatjen e lidhjes në sekonda me saktësi milisekonda.
  • Një parametër "min_free" është shtuar në direktivat "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" dhe "uwsgi_cache_path", i cili rregullon madhësinë e cache bazuar në përcaktimin e madhësisë minimale të hapësirës së lirë në disk.
  • Direktivat "lingering_close", "lingering_time" dhe "lingering_timeout" janë përshtatur për të punuar me HTTP/2.
  • Kodi i përpunimit të lidhjes në HTTP/2 është afër zbatimit të HTTP/1.x. Mbështetja për cilësimet individuale "http2_recv_timeout", "http2_idle_timeout" dhe "http2_max_requests" është ndërprerë në favor të direktivave të përgjithshme "keepalive_timeout" dhe "keepalive_requests". Cilësimet "http2_max_field_size" dhe "http2_max_header_size" janë hequr dhe në vend të tyre duhet të përdoren "large_client_header_buffers".
  • Shtoi një opsion të ri të linjës së komandës "-e", i cili ju lejon të specifikoni një skedar alternativ për shkrimin e regjistrit të gabimeve, i cili do të përdoret në vend të regjistrit të specifikuar në cilësimet. Në vend të emrit të skedarit, mund të specifikoni vlerën speciale stderr.

Burimi: opennet.ru

Shto një koment