nginx 1.20.0 թողարկում

Մեկ տարվա մշակումից հետո ներկայացվել է բարձր արդյունավետությամբ HTTP սերվերի և բազմապրոտոկոլի պրոքսի սերվերի nginx 1.20.0 նոր կայուն մասնաճյուղը, որն իր մեջ ներառում է հիմնական ճյուղում կուտակված փոփոխությունները՝ 1.19.x։ Հետագայում 1.20 կայուն ճյուղի բոլոր փոփոխությունները կապված կլինեն լուրջ սխալների և խոցելիության վերացման հետ։ Շուտով կձևավորվի nginx 1.21-ի հիմնական մասնաճյուղը, որում կշարունակվի նոր հնարավորությունների զարգացումը։ Սովորական օգտվողների համար, ովքեր երրորդ կողմի մոդուլների հետ համատեղելիություն ապահովելու խնդիր չունեն, խորհուրդ է տրվում օգտագործել հիմնական մասնաճյուղը, որի հիման վրա երեք ամիսը մեկ ձևավորվում են Nginx Plus առևտրային արտադրանքի թողարկումները:

Netcraft-ի մարտի զեկույցի համաձայն՝ nginx-ն օգտագործվում է բոլոր ակտիվ կայքերի 20.15%-ում (մեկ տարի առաջ՝ 19.56%, երկու տարի առաջ՝ 20.73%), ինչը համապատասխանում է այս կատեգորիայի հանրաճանաչության երկրորդ տեղին (Apache-ի մասնաբաժինը համապատասխանում է 25.38%-ին։ (մեկ տարի առաջ՝ 27.64%), Google՝ 10.09%, Cloudflare՝ 8.51% Միևնույն ժամանակ, բոլոր կայքերը դիտարկելիս nginx-ը պահպանում է իր առաջատարությունը և զբաղեցնում է շուկայի 35.34%-ը (մեկ տարի առաջ՝ 36.91%, երկու տարի առաջ՝ 27.52%), մինչդեռ Apache-ի մասնաբաժինը համապատասխանում է 25.98%-ին, OpenResty-ին ( nginx-ի և LuaJIT-ի վրա հիմնված հարթակ.)՝ 6.55%, Microsoft IIS՝ 5.96%։

Աշխարհի միլիոն ամենաշատ այցելվող կայքերի մեջ nginx-ի մասնաբաժինը կազմում է 25.55% (մեկ տարի առաջ՝ 25.54%, երկու տարի առաջ՝ 26.22%)։ Ներկայումս Nginx-ում աշխատում է մոտ 419 միլիոն կայք (459 միլիոն մեկ տարի առաջ): Ըստ W3Techs-ի՝ nginx-ն օգտագործվում է միլիոնավոր ամենաշատ այցելվող կայքերից 33.7%-ում, անցյալ տարվա ապրիլին այդ ցուցանիշը կազմել է 31.9%, նախորդ տարի՝ 41.8% (անկումը բացատրվում է Cloudflare http-ի առանձին հաշվառման անցումով։ սերվեր): Apache-ի մասնաբաժինը տարվա ընթացքում իջել է 39.5%-ից մինչև 34%, իսկ Microsoft IIS-ի մասնաբաժինը 8.3%-ից մինչև 7%: LiteSpeed-ի մասնաբաժինը 6.3%-ից աճել է մինչև 8.4%, իսկ Node.js-ը՝ 0.8%-ից մինչև 1.2%: Ռուսաստանում nginx-ն օգտագործվում է ամենաշատ այցելվող կայքերի 79.1%-ում (մեկ տարի առաջ՝ 78.9%)։

Ամենաուշագրավ բարելավումները, որոնք ավելացվել են 1.19.x հոսանքին հակառակ ճյուղի մշակման ընթացքում.

  • Ավելացվել է հաճախորդի վկայականները ստուգելու հնարավորություն՝ օգտագործելով արտաքին ծառայությունները՝ հիմնված OCSP (Առցանց վկայականի կարգավիճակի արձանագրություն) արձանագրության վրա: Ստուգումը միացնելու համար առաջարկվում է ssl_ocsp հրահանգը, կարգավորելու քեշի չափը՝ ssl_ocsp_cache, վերորոշելու վկայագրում նշված OCSP մշակողի URL-ը՝ ssl_ocsp_responder:
  • Ներառված է ngx_stream_set_module մոդուլը, որը թույլ է տալիս արժեք վերագրել փոփոխական սերվերին { listen 12345; սահմանել $true 1; }
  • Ավելացվեց proxy_cookie_flags հրահանգը՝ վստահված կապերում քուքիների համար դրոշներ նշելու համար: Օրինակ՝ «http only» դրոշը «one»-ին ավելացնելու համար, իսկ «nosecure» և «samesite=strict» դրոշները բոլոր մյուս թխուկների համար, կարող եք օգտագործել հետևյալ կառուցվածքը՝ proxy_cookie_flags one http only; proxy_cookie_flags ~ nosecure samesite=խիստ;

    Նմանատիպ userid_flags հրահանգ՝ թխուկներին դրոշներ ավելացնելու համար, նույնպես ներդրված է ngx_http_userid մոդուլի համար:

  • Ավելացվել են «ssl_conf_command», «proxy_ssl_conf_command», «grpc_ssl_conf_command» և «uwsgi_ssl_conf_command» հրահանգները, որոնցով կարող եք կամայական պարամետրեր սահմանել OpenSSL-ը կարգավորելու համար: Օրինակ՝ ChaCha ծածկագրերի և TLSv1.3 ծածկագրերի առաջնահերթ կազմաձևման համար կարող եք նշել ssl_conf_command Ընտրանքներ PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Ավելացվեց «ssl_reject_handshake» հրահանգը, որը հրահանգում է մերժել SSL կապերը բանակցելու բոլոր փորձերը (օրինակ, կարող է օգտագործվել SNI դաշտում անհայտ հյուրընկալող անուններով բոլոր զանգերը մերժելու համար): սերվեր {լսել 443 ssl; ssl_reject_handshake on; } սերվեր { listen 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Proxy_smtp_auth հրահանգը ավելացվել է փոստի վստահված անձին, որը թույլ է տալիս նույնականացնել օգտատիրոջը հետին պլանում՝ օգտագործելով AUTH հրամանը և PLAIN SASL մեխանիզմը:
  • Ավելացվեց «keepalive_time» հրահանգը, որը սահմանափակում է յուրաքանչյուր keep-alive կապի ընդհանուր ժամկետը, որից հետո կապը կփակվի (չշփոթել keepalive_timeout-ի հետ, որը սահմանում է անգործության ժամանակը, որից հետո keep-alive կապը փակվում է):
  • Ավելացվեց $connection_time փոփոխականը, որի միջոցով կարող եք տեղեկություններ ստանալ կապի տևողության մասին վայրկյաններով միլիվայրկյան ճշգրտությամբ:
  • «proxy_cache_path», «fastcgi_cache_path», «scgi_cache_path» և «uwsgi_cache_path» հրահանգներին ավելացվել է «min_free» պարամետրը, որը կարգավորում է քեշի չափը՝ հիմնվելով սկավառակի ազատ տարածության նվազագույն չափի որոշման վրա:
  • «Lingering_close», «lingering_time» և «lingering_timeout» հրահանգները հարմարեցվել են HTTP/2-ի հետ աշխատելու համար:
  • HTTP/2-ում կապի մշակման կոդը մոտ է HTTP/1.x իրականացմանը: «http2_recv_timeout», «http2_idle_timeout» և «http2_max_requests» անհատական ​​կարգավորումների աջակցությունը դադարեցվել է հօգուտ «keepalive_timeout» և «keepalive_requests» ընդհանուր հրահանգների: «http2_max_field_size» և «http2_max_header_size» կարգավորումները հեռացվել են, և փոխարենը պետք է օգտագործվի «large_client_header_buffers»:
  • Ավելացվեց հրամանի տողի նոր տարբերակ «-e», որը թույլ է տալիս նշել սխալների մատյան գրելու այլընտրանքային ֆայլ, որը կօգտագործվի կարգավորումներում նշված մատյանի փոխարեն: Ֆայլի անվան փոխարեն կարող եք նշել հատուկ արժեքը stderr:

Source: opennet.ru

Добавить комментарий