nginx 1.20.0 eldono

Post jaro da evoluo, nova stabila branĉo de la alt-efikeca HTTP-servilo kaj multprotokola prokura servilo nginx 1.20.0 estis enkondukita, kiu enkorpigas la ŝanĝojn amasigitajn en la ĉefa branĉo 1.19.x. En la estonteco, ĉiuj ŝanĝoj en la stabila branĉo 1.20 estos rilataj al la forigo de gravaj eraroj kaj vundeblecoj. Baldaŭ la ĉefa branĉo de nginx 1.21 estos formita, en kiu la disvolviĝo de novaj funkcioj daŭros. Por ordinaraj uzantoj, kiuj ne havas la taskon certigi kongruon kun triaj moduloj, oni rekomendas uzi la ĉefan branĉon, surbaze de kiu eldonoj de la komerca produkto Nginx Plus estas formitaj ĉiuj tri monatoj.

Laŭ marta raporto de Netcraft, nginx estas uzata sur 20.15% de ĉiuj aktivaj retejoj (antaŭ unu jaro 19.56%, antaŭ du jaroj 20.73%), kio respondas al la dua loko en populareco en ĉi tiu kategorio (la parto de Apache respondas al 25.38% (antaŭ unu jaro 27.64%), Google - 10.09%, Cloudflare - 8.51%.Samtempe, kiam oni konsideras ĉiujn retejojn, nginx konservas sian gvidadon kaj okupas 35.34% de la merkato (antaŭ jaro 36.91%, antaŭ du jaroj - 27.52%), dum la parto de Apache respondas al 25.98%, OpenResty (platformo bazita sur nginx kaj LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Inter la milionoj da plej vizititaj retejoj en la mondo, la parto de nginx estas 25.55% (antaŭ unu jaro 25.54%, antaŭ du jaroj 26.22%). Nuntempe ĉirkaŭ 419 milionoj da retejoj funkcias Nginx (antaŭ jaro 459 milionoj). Laŭ W3Techs, nginx estas uzata en 33.7% de retejoj el la miliono plej vizitataj, en aprilo de la pasinta jaro ĉi tiu cifero estis 31.9%, la antaŭan jaron - 41.8% (la malkresko estas klarigita per la transiro al aparta kontado de la http de Cloudflare). servilo). La parto de Apache falis tra la jaro de 39.5% al ​​34%, kaj la parto de Microsoft IIS de 8.3% al 7%. La parto de LiteSpeed ​​kreskis de 6.3% al 8.4%, kaj Node.js de 0.8% al 1.2%. En Rusio, nginx estas uzata sur 79.1% de la plej vizititaj retejoj (antaŭ unu jaro - 78.9%).

La plej rimarkindaj plibonigoj aldonitaj dum la evoluo de la 1.19.x kontraŭflua branĉo:

  • Aldonis la kapablon kontroli klientajn atestilojn uzante eksterajn servojn bazitajn sur la protokolo OCSP (Enreta Certificate Status Protocol). Por ebligi la kontrolon, la direktivo ssl_ocsp estas proponita, por agordi la kaŝmemorgrandon - ssl_ocsp_cache, por redifini la URL de la OCSP-traktilo specifita en la atestilo - ssl_ocsp_responder.
  • La modulo ngx_stream_set_module estas inkluzivita, kiu ebligas al vi atribui valoron al la varia servilo { listen 12345; starigis $vera 1; }
  • Aldonita proxy_cookie_flags direktivo por specifi flagojn por Kuketoj en prokuritaj konektoj. Ekzemple, por aldoni la flagon "httponly" al Kuketo "one", kaj la flagojn "nosecure" kaj "samesite=strict" por ĉiuj aliaj Kuketoj, vi povas uzi la jenan konstruon: proxy_cookie_flags unu httponly; proxy_cookie_flags ~ nosecure samesite=strikta;

    Simila userid_flags direktivo por aldoni flagojn al Kuketoj ankaŭ estas efektivigita por la modulo ngx_http_userid.

  • Aldonitaj direktivoj "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" kaj "uwsgi_ssl_conf_command", per kiuj vi povas agordi arbitrajn parametrojn por agordi OpenSSL. Ekzemple, por prioritatigi ChaCha-ĉifrojn kaj altnivelan agordon de TLSv1.3-ĉifroj, vi povas specifi ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Aldonita "ssl_reject_handshake" direktivo, kiu instrukcias malakcepti ĉiujn provojn negoci SSL-ligojn (ekzemple, povas esti uzata por malakcepti ĉiujn vokojn kun nekonataj gastigantnomoj en la kampo SNI). servilo { aŭskulti 443 ssl; ssl_reject_manpremo sur; } servilo { aŭskulti 443 ssl; servilo_nomo ekzemplo.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • La direktivo proxy_smtp_auth estis aldonita al la poŝta prokurilo, permesante al vi aŭtentikigi la uzanton sur la backend uzante la AUTH-komandon kaj la PLAIN SASL-mekanismon.
  • Aldonita la "keepalive_time" direktivo, kiu limigas la totalan vivdaŭron de ĉiu keep-alive-konekto, post kiu la konekto estos fermita (ne konfuzu kun keepalive_timeout, kiu difinas la senaktiveco-tempon post kiu la keep-alive-konekto estas fermita).
  • Aldonita $connection_time-variablo, per kiu vi povas ricevi informojn pri la daŭro de la konekto en sekundoj kun milisekunda precizeco.
  • Parametro "min_free" estis aldonita al la direktivoj "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" kaj "uwsgi_cache_path", kiu reguligas la kaŝmemorgrandecon surbaze de determini la minimuman grandecon de libera diskspaco.
  • La direktivoj "lingering_close", "lingering_time" kaj "lingering_timeout" estis adaptitaj por labori kun HTTP/2.
  • La koneksa prilabora kodo en HTTP/2 estas proksima al la efektivigo de HTTP/1.x. Subteno por la individuaj agordoj "http2_recv_timeout", "http2_idle_timeout" kaj "http2_max_requests" estis nuligita favore al la ĝeneralaj direktivoj "keepalive_timeout" kaj "keepalive_requests". La agordoj "http2_max_field_size" kaj "http2_max_header_size" estis forigitaj kaj "large_client_header_buffers" devus esti uzata anstataŭe.
  • Aldonis novan komandlinian opcion "-e", kiu ebligas al vi specifi alternativan dosieron por skribi la erarprotokolo, kiu estos uzata anstataŭ la protokolo specifita en la agordoj. Anstataŭ la dosiernomo, vi povas specifi la specialan valoron stderr.

fonto: opennet.ru

Aldoni komenton