nginx 1.20.0 release

Pagkatapos ng isang taon ng pag-unlad, isang bagong matatag na sangay ng HTTP server na may mataas na pagganap at multi-protocol proxy server nginx 1.20.0 ay ipinakilala, na isinasama ang mga pagbabagong naipon sa pangunahing sangay na 1.19.x. Sa hinaharap, ang lahat ng pagbabago sa stable na branch 1.20 ay mauugnay sa pag-aalis ng mga seryosong error at kahinaan. Sa lalong madaling panahon ang pangunahing sangay ng nginx 1.21 ay mabubuo, kung saan magpapatuloy ang pagbuo ng mga bagong tampok. Para sa mga ordinaryong gumagamit na walang gawain na tiyakin ang pagiging tugma sa mga module ng third-party, inirerekumenda na gamitin ang pangunahing sangay, batay sa kung saan ang mga paglabas ng komersyal na produkto ng Nginx Plus ay nabuo tuwing tatlong buwan.

Ayon sa ulat ng Marso mula sa Netcraft, ang nginx ay ginagamit sa 20.15% ng lahat ng aktibong site (isang taon na ang nakalipas 19.56%, dalawang taon na ang nakalipas 20.73%), na tumutugma sa pangalawang lugar sa katanyagan sa kategoryang ito (ang bahagi ng Apache ay tumutugma sa 25.38% (isang taon na ang nakalipas 27.64%), Google - 10.09%, Cloudflare - 8.51%. Kasabay nito, kapag isinasaalang-alang ang lahat ng mga site, napanatili ng nginx ang pamumuno nito at sinasakop ang 35.34% ng merkado (isang taon na ang nakalipas 36.91%, dalawang taon na ang nakakaraan - 27.52%), habang ang bahagi ng Apache ay tumutugma sa 25.98%, OpenResty ( platform batay sa nginx at LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Kabilang sa milyong pinaka binibisitang mga site sa mundo, ang bahagi ng nginx ay 25.55% (isang taon na ang nakalipas 25.54%, dalawang taon na ang nakalipas 26.22%). Sa kasalukuyan, humigit-kumulang 419 milyong mga website ang nagpapatakbo ng Nginx (459 milyon noong nakaraang taon). Ayon sa W3Techs, ang nginx ay ginagamit sa 33.7% ng mga site mula sa milyong pinaka binibisita, noong Abril ng nakaraang taon ang bilang na ito ay 31.9%, noong nakaraang taon - 41.8% (ang pagtanggi ay ipinaliwanag ng paglipat sa hiwalay na accounting ng Cloudflare http server). Bumagsak ang bahagi ng Apache sa buong taon mula 39.5% hanggang 34%, at ang bahagi ng Microsoft IIS mula 8.3% hanggang 7%. Ang bahagi ng LiteSpeed ​​ay lumago mula 6.3% hanggang 8.4%, at Node.js mula 0.8% hanggang 1.2%. Sa Russia, ang nginx ay ginagamit sa 79.1% ng mga pinakabinibisitang site (isang taon na ang nakalipas - 78.9%).

Ang pinakakilalang mga pagpapahusay na idinagdag sa panahon ng pagbuo ng 1.19.x upstream branch:

  • Nagdagdag ng kakayahang mag-verify ng mga certificate ng kliyente gamit ang mga panlabas na serbisyo batay sa protocol ng OCSP (Online Certificate Status Protocol). Upang paganahin ang tseke, iminungkahi ang direktiba ng ssl_ocsp, upang i-configure ang laki ng cache - ssl_ocsp_cache, upang muling tukuyin ang URL ng handler ng OCSP na tinukoy sa sertipiko - ssl_ocsp_responder.
  • Kasama ang module ng ngx_stream_set_module, na nagbibigay-daan sa iyong magtalaga ng value sa variable na server { listen 12345; itakda ang $true 1; }
  • Nagdagdag ng direktiba ng proxy_cookie_flags upang tukuyin ang mga flag para sa Cookies sa mga proxy na koneksyon. Halimbawa, upang idagdag ang flag na "httponly" sa Cookie "one", at ang mga flag na "nosecure" at "samesite=strict" para sa lahat ng iba pang Cookies, maaari mong gamitin ang sumusunod na construction: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Ang isang katulad na userid_flags na direktiba para sa pagdaragdag ng mga flag sa Cookies ay ipinatupad din para sa ngx_http_userid module.

  • Nagdagdag ng mga direktiba na "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" at "uwsgi_ssl_conf_command", kung saan maaari kang magtakda ng mga arbitrary na parameter para sa pag-configure ng OpenSSL. Halimbawa, upang bigyang-priyoridad ang mga ChaCha cipher at advanced na configuration ng TLSv1.3 ciphers, maaari mong tukuyin ang ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Nagdagdag ng "ssl_reject_handshake" na direktiba, na nagtuturo na tanggihan ang lahat ng mga pagtatangka na makipag-ayos ng mga koneksyon sa SSL (halimbawa, maaaring gamitin upang tanggihan ang lahat ng mga tawag na may hindi kilalang mga hostname sa field ng SNI). server { makinig sa 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; }
  • Ang proxy_smtp_auth directive ay naidagdag sa mail proxy, na nagbibigay-daan sa iyong patotohanan ang user sa backend gamit ang AUTH command at ang PLAIN SASL na mekanismo.
  • Idinagdag ang "keepalive_time" na direktiba, na naglilimita sa kabuuang haba ng buhay ng bawat keep-alive na koneksyon, pagkatapos nito ay isasara ang koneksyon (hindi dapat ipagkamali sa keepalive_timeout, na tumutukoy sa oras ng hindi aktibo kung saan ang keep-alive na koneksyon ay sarado).
  • Nagdagdag ng variable na $connection_time, kung saan makakakuha ka ng impormasyon tungkol sa tagal ng koneksyon sa mga segundo nang may katumpakan ng millisecond.
  • Ang isang "min_free" na parameter ay idinagdag sa "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" at "uwsgi_cache_path" na mga direktiba, na kumokontrol sa laki ng cache batay sa pagtukoy sa minimum na laki ng libreng espasyo sa disk.
  • Ang "lingering_close", "lingering_time" at "lingering_timeout" na mga direktiba ay iniakma upang gumana sa HTTP/2.
  • Ang code sa pagpoproseso ng koneksyon sa HTTP/2 ay malapit sa pagpapatupad ng HTTP/1.x. Ang suporta para sa mga indibidwal na setting na "http2_recv_timeout", "http2_idle_timeout" at "http2_max_requests" ay hindi na ipinagpatuloy pabor sa pangkalahatang mga direktiba na "keepalive_timeout" at "keepalive_requests". Ang mga setting na "http2_max_field_size" at "http2_max_header_size" ay inalis na at "large_client_header_buffers" ang dapat gamitin sa halip.
  • Nagdagdag ng bagong command line na opsyon "-e", na nagbibigay-daan sa iyong tumukoy ng alternatibong file para sa pagsusulat ng error log, na gagamitin sa halip na log na tinukoy sa mga setting. Sa halip na pangalan ng file, maaari mong tukuyin ang espesyal na halaga na stderr.

Pinagmulan: opennet.ru

Magdagdag ng komento