nginx 1.20.0 laidiens

Pēc gada izstrādes ir ieviests jauns stabils augstas veiktspējas HTTP servera un vairāku protokolu starpniekservera atzars nginx 1.20.0, kurā iestrādātas galvenajā atzarā 1.19.x uzkrātās izmaiņas. Turpmāk visas izmaiņas stabilajā zarā 1.20 bÅ«s saistÄ«tas ar nopietnu kļūdu un ievainojamÄ«bu novērÅ”anu. DrÄ«zumā tiks izveidota nginx 1.21 galvenā filiāle, kurā turpināsies jaunu funkciju izstrāde. Parastajiem lietotājiem, kuriem nav uzdevums nodroÅ”ināt saderÄ«bu ar treÅ”o puÅ”u moduļiem, ieteicams izmantot galveno filiāli, uz kuras pamata ik pēc trim mēneÅ”iem tiek veidoti komerciālā produkta Nginx Plus izlaidumi.

Saskaņā ar Netcraft marta ziņojumu, nginx tiek izmantots 20.15% no visām aktÄ«vajām vietnēm (pirms gada 19.56%, pirms diviem gadiem 20.73%), kas atbilst otrajai vietai pēc popularitātes Å”ajā kategorijā (Apache daļa atbilst 25.38% (pirms gada 27.64%), Google - 10.09%, Cloudflare - 8.51%. Tajā paŔā laikā, ņemot vērā visas vietnes, nginx saglabā lÄ«derpozÄ«cijas un aizņem 35.34% no tirgus (pirms gada 36.91%, pirms diviem gadiem - 27.52%), savukārt Apache daļa atbilst 25.98%, OpenResty ( platforma, kuras pamatā ir nginx un LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Starp miljoniem visvairāk apmeklēto vietņu pasaulē nginx daļa ir 25.55% (pirms gada 25.54%, pirms diviem gadiem 26.22%). PaÅ”laik Nginx darbojas aptuveni 419 miljonos vietņu (pirms gada 459 miljoni). Pēc W3Techs datiem, nginx tiek izmantots 33.7% vietņu no miljona visvairāk apmeklētajām vietnēm, pagājuŔā gada aprÄ«lÄ« Å”is rādÄ«tājs bija 31.9%, gadu iepriekÅ” - 41.8% (samazinājums skaidrojams ar pāreju uz atseviŔķu Cloudflare http uzskaiti serveris). Apache daļa gada laikā samazinājās no 39.5% lÄ«dz 34%, bet Microsoft IIS daļa no 8.3% lÄ«dz 7%. LiteSpeed ā€‹ā€‹daļa pieauga no 6.3% lÄ«dz 8.4%, bet Node.js no 0.8% lÄ«dz 1.2%. Krievijā nginx tiek izmantots 79.1% no visvairāk apmeklētajām vietnēm (pirms gada - 78.9%).

Ievērojamākie uzlabojumi, kas pievienoti 1.19.x augÅ”puses filiāles izstrādes laikā:

  • Pievienota iespēja pārbaudÄ«t klientu sertifikātus, izmantojot ārējos pakalpojumus, kuru pamatā ir OCSP (Online Certificate Status Protocol) protokols. Lai iespējotu pārbaudi, tiek piedāvāta direktÄ«va ssl_ocsp, lai konfigurētu keÅ”atmiņas lielumu - ssl_ocsp_cache, lai atkārtoti definētu sertifikātā norādÄ«tā OCSP apstrādātāja URL - ssl_ocsp_responder.
  • Ir iekļauts modulis ngx_stream_set_module, kas ļauj pieŔķirt vērtÄ«bu mainÄ«gajam serverim { listen 12345; iestatÄ«t $true 1; }
  • Pievienota proxy_cookie_flags direktÄ«va, lai norādÄ«tu karodziņus sÄ«kfailiem starpniekservera savienojumos. Piemēram, lai pievienotu karodziņu ā€œhttponlyā€ sÄ«kfailam ā€œoneā€ un karogus ā€œnosecureā€ un ā€œsamesite=strictā€ visiem pārējiem sÄ«kfailiem, varat izmantot Ŕādu konstrukciju: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    LÄ«dzÄ«ga userid_flags direktÄ«va karodziņu pievienoÅ”anai sÄ«kfailiem ir ieviesta arÄ« modulim ngx_http_userid.

  • Pievienotas direktÄ«vas ā€œssl_conf_commandā€, ā€œproxy_ssl_conf_commandā€, ā€œgrpc_ssl_conf_commandā€ un ā€œuwsgi_ssl_conf_commandā€, ar kurām var iestatÄ«t patvaļīgus parametrus OpenSSL konfigurÄ“Å”anai. Piemēram, lai pieŔķirtu prioritāti ChaCha Å”ifriem un uzlabotai TLSv1.3 Å”ifru konfigurācijai, varat norādÄ«t ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Pievienota "ssl_reject_handshake" direktÄ«va, kas uzdod noraidÄ«t visus mēģinājumus vienoties par SSL savienojumiem (piemēram, var izmantot, lai noraidÄ«tu visus zvanus ar nezināmiem saimniekdatora nosaukumiem SNI laukā). serveris { klausÄ«ties 443 ssl; ssl_reject_handshake ieslēgts; } serveris { klausÄ«ties 443 ssl; servera_nosaukums example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Pasta starpniekserverim ir pievienota direktÄ«va proxy_smtp_auth, kas ļauj autentificēt lietotāju aizmugursistēmā, izmantojot komandu AUTH un PLAIN SASL mehānismu.
  • Pievienota "keepalive_time" direktÄ«va, kas ierobežo katra Keep-alive savienojuma kopējo kalpoÅ”anas laiku, pēc kura savienojums tiks slēgts (nejaukt ar keepalive_timeout, kas nosaka neaktivitātes laiku, pēc kura tiek aizvērts uzturÄ“Å”anas savienojums).
  • Pievienots $connection_time mainÄ«gais, caur kuru ar milisekundes precizitāti var iegÅ«t informāciju par savienojuma ilgumu sekundēs.
  • DirektÄ«vām ā€œproxy_cache_pathā€, ā€œfastcgi_cache_pathā€, ā€œscgi_cache_pathā€ un ā€œuwsgi_cache_pathā€ ir pievienots parametrs ā€œmin_freeā€, kas regulē keÅ”atmiņas lielumu, pamatojoties uz brÄ«vās diska vietas minimālā lieluma noteikÅ”anu.
  • DirektÄ«vas "lingering_close", "lingering_time" un "lingering_timeout" ir pielāgotas darbam ar HTTP/2.
  • Savienojuma apstrādes kods HTTP/2 ir tuvu HTTP/1.x ievieÅ”anai. Atbalsts atseviŔķiem iestatÄ«jumiem "http2_recv_timeout", "http2_idle_timeout" un "http2_max_requests" ir pārtraukts par labu vispārÄ«gajām direktÄ«vām "keepalive_timeout" un "keepalive_requests". IestatÄ«jumi ā€œhttp2_max_field_sizeā€ un ā€œhttp2_max_header_sizeā€ ir noņemti, un tā vietā ir jāizmanto ā€œlarge_client_header_buffersā€.
  • Pievienota jauna komandrindas opcija ā€œ-eā€, kas ļauj norādÄ«t alternatÄ«vu failu kļūdu žurnāla rakstÄ«Å”anai, kas tiks izmantots iestatÄ«jumos norādÄ«tā žurnāla vietā. Faila nosaukuma vietā varat norādÄ«t Ä«paÅ”o vērtÄ«bu stderr.

Avots: opennet.ru

Pievieno komentāru