nginx 1.18.0-ի թողարկում

Մեկ տարի բարգավաճման արդյունքում ներկայացված է նոր կայուն ճյուղ բարձր արդյունավետությամբ HTTP-ծառի և բազմապրոտոկոլային պրոքսի-ծառի nginx 1.18.0, որն ընդգրկում է 1.17.x հիմնական ճյուղի ընթացքում կուտակված փոփոխությունները։ Բարեկեցված 1.18-ի կայուն ճյուղում բոլոր փոփոխությունները կապվելու են լուրջ սխալների և խոցելիությունների վերացման հետ։ Շուտով կձևավորվի nginx 1.19 հիմնական ճյուղը, որի շրջանակներում կշարունակվի նոր հնարավորությունների զարգացումը։ Այն օգտվողների համար, ովքեր չունեն երրորդ կողմի մոդուլների սերտիֆիկացման խնդրանք, recommendation արժե օգտագործել գլխավոր ճյուղը, որի հիման վրա յուրաքանչյուր երեք ամսում ձևավորվում են Nginx Plus-ի կոմերցիոն արտադրանքի թողարկումները։

Թե՛ ապրիլյան հաշվետվության համաձայն, Netcraft ընկերության տվյալներով, nginx-ն օգտագործվում է բոլոր ակտիվ կայքերից 19.56%-ով (մեկ տարի առաջ 20.73%, երկու տարի առաջ 21.02%), ինչը համապատասխանում է այս կատեգորիայում երկրորդ տեղին (Apache-ի մասնաբաժինը կազմում է 27.64%, Google — 10.03%, Microsoft IIS — 4.77%)։ Այդ դեպքում, բոլոր կայքերը դիտարկելով, nginx-ն պահպանել է առաջատար դիրք և կազմում է 36.91% շուկայի (մեկ տարի առաջ 27.52%), մինչդեռ Apache-ի մասնաբաժինը 24.73%-ն է, Microsoft IIS — 12.85%, Google — 3.42%։

Աշխարհում ամենաշատ այցելվող միլիոն կայքերը իրենց մեջ 25.54% nginx են պարունակում (մեկ տարի առաջ 26.22%, երկու տարի առաջ 23.76%)։ Այս պահին մոտ 459 մլն կայքեր գործում են nginx-ի տակ (մեկ տարի առաջ 397 մլն)։ Ըստ տվյալների W3Techs-ի տվյալների, nginx օգտագործվում է ամենաշատ այցելվող մեկ միլիոն կայքերից 31.9%-ում, անցյալ տարվա ապրիլին այս ցուցանիշը 41.8% էր, երկու տարի առաջ՝ 38% (մոլորություն է առաջացել Cloudflare-ի http ստորագրվող սերվերների առանձին հաշվառման անցնելուց)։ Apache-ի մասնաբաժինը տարվա ընթացքում նվազել է 43.6%-ից՝ 38.9%-ի, իսկ Microsoft IIS-ի՝ 8.6%-ից՝ 8.3%-ի։ Ռուսաստանում nginx օգտագործվում է օգտագործվում է 78.9% ամենաշատ այցելվող կայքերում (մեկ տարի առաջ՝ 81%)։

Առաջնորդներին արձանագրված առավել նշանակալի բարելավումներ, որոնք ավելացվել են 1.17.x հիմնական ճյուղի ստեղծման ընթացքում՝

  • Ավելացվել է հրահանգ limit_req_dry_run, որը ակտիվացնում է փորձնական գործառույթը, ուր ներթափանցումների ինտենսիվության սահմանափակումները (rate limit) չեն կիրառվում, սակայն շարունակվում է հաշվարկել սահմաններին անցնող հարցումների թվաքանակը կիսված հիշողության մեջ;
  • Ավելացվել է հրահանգ limit_conn_dry_run, որը փոխադրում է ngx_http_limit_conn_module մոդուլը փորձնական գործառույթի, որտեղ կապերը չեն սահմանափակվում, բայց հաշվում են;
  • Ավելացվել է «auth_delay« հրահանգ, որը թույլ է տալիս ավելացնել 401 պատասխանային կոդով չհաստատված մտքերին ուշացում, որպեսզի նվազեցվի գաղտնաբառերի համադրությունների ինտենսիվությունը և պաշտպանությունն միջոցով, գործողությունների կատարումների ժամանակի չափումը (timing attack) համակարգերին հասանելիությունները, որոնք սահմանափակված են գաղտնաբառով, հարցման ենթածվույթի արդյունքը կամ JWT (`JSON Web Token`);
  • Ավելացվել է փոփոխականների աջակցություն «limit_rate» և «limit_rate_after» հրահանգներում, ինչպես նաև «proxy_upload_rate» և «proxy_download_rate» մեռածների հետ;
  • Հրահանգը grpc_pass ավելացվել է փոփոխականի օգտագործման աջակցություն հասցեի պարամետրերում։ Եթե հասցեն հիշատակվում է որպես ոլորտի անուն, ապա այն որոնվում է նկարագրված սերվերների խմբի մեջ, և, եթե չգտնվի, ապա որոշում է ընդունվում resolver-ի միջոցով;
  • Ավելացվել են նոր փոփոխականներ $proxy_protocol_server_addr և $proxy_protocol_server_port, որը պարունակում է սերվերի հասցեն և պորտը, ստացված PROXY արձանագրության վերնագրից;
  • ngx_stream_ssl_preread մոդուլում ներդրվել է ‘ ngx_stream_limit_conn_module ավելացված է փոփոխական $limit_conn_status, որը պահում է մի քանի կապերի սահմանափակման արդյունքը: PASSED, REJECTED կամ REJECTED_DRY_RUN;
  • ngx_stream_ssl_preread մոդուլում ներդրվել է ‘ ngx_http_limit_req_module ավելացված է փոփոխական $limit_req_status, որը պահում է հարցումների ներմուծման արագության սահմանափակման արդյունքը: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN կամ REJECTED_DRY_RUN;
  • Ընդհանուր առմամբ ապահովված է մոդուլի կառուցումը ngx_http_postpone_filter_module;
  • Ավելացված է անվանված բլոկների «location» переключения աջակցություն $r->internal_redirect() մեթոդի միջոցով՝ որն առաջարկվում է ներգործված Perl մեկնաբանչին: Այս մետոդը հիմա ենթադրում է URI-ների մշակումը escapes-ված նշաններով;
  • «upstream» կարգավիճակում «hash» բեռի բաշխման նպատակով հաճախորդին սերվերին կապելու համար, եթե բանալիի դատարկ արժեք է նշված, այժմ ակտիվացվում է հավասար բաշխման ռեժիմ (round-robin);
  • Ավելացված է ioctl(FIONREAD) կանչելու աջակցություն, եթե այն հասանելի է, որպեսզի խուսափի արագ կապից երկար ժամանակ տեղեկության ընթերցումը:

Ընտանիք: opennet.ru

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster