nginx 1.18.0 versiyasi

Bir yillik rivojlanishdan keyin taqdim etiladi yuqori samarali HTTP serverining yangi barqaror tarmog'i va ko'p protokolli proksi-server nginx 1.18.0, 1.17.x asosiy filiali ichida to'plangan o'zgarishlarni o'zlashtirgan. Kelajakda 1.18 barqaror filialidagi barcha o'zgarishlar jiddiy xatolar va zaifliklarni bartaraf etish bilan bog'liq bo'ladi. Tez orada nginx 1.19 ning asosiy tarmog'i shakllanadi, uning doirasida yangi xususiyatlarni ishlab chiqish davom etadi. Uchinchi tomon modullari bilan muvofiqlikni ta'minlash vazifasi bo'lmagan oddiy foydalanuvchilar uchun, tavsiya etiladi asosiy filialdan foydalaning, uning asosida Nginx Plus tijorat mahsulotining relizlari har uch oyda shakllanadi.

muvofiq Aprel hisoboti Netcraft nginx barcha faol saytlarning 19.56% da (bir yil oldin 20.73%, ikki yil oldin 21.02%) foydalaniladi, bu ushbu turkumdagi mashhurlik boβ€˜yicha ikkinchi oβ€˜ringa toβ€˜gβ€˜ri keladi (Apache ulushi 27.64%, Google – 10.03%, Microsoft IIS - 4.77% . Shu bilan birga, barcha saytlarni ko'rib chiqishda nginx o'z yetakchiligini saqlab qoladi va bozorning 36.91 foizini egallaydi (bir yil avval 27.52 foiz), Apache ulushi 24.73 foizga, Microsoft IIS - 12.85 foizga, Google - 3.42 foizga to'g'ri keladi.

Dunyodagi millionlab eng ko'p tashrif buyurilgan saytlar orasida nginx ulushi 25.54% (bir yil oldin 26.22%, ikki yil oldin 23.76%). Hozirda 459 millionga yaqin veb-saytlar Nginx bilan ishlamoqda (bir yil avval 397 million). tomonidan ma'lumotlar W3Techs nginx eng ko'p tashrif buyurilgan million saytlarning 31.9 foizida qo'llaniladi, o'tgan yilning aprel oyida bu ko'rsatkich 41.8 foizni tashkil etgan, bir yil oldin - 38 foiz (pasayishi Cloudflare http serverining alohida hisobiga o'tish bilan izohlanadi). Yil davomida Apache ulushi 43.6% dan 38.9% gacha, Microsoft IIS ulushi esa 8.6% dan 8.3% gacha kamaydi. Rossiyada nginx ishlatiladi eng ko'p tashrif buyurilgan saytlarning 78.9 foizida (bir yil oldin - 81%).

1.17.x yuqori oqim filialini ishlab chiqishda qo'shilgan eng muhim yaxshilanishlar:

  • Direktiv qo'shildi limit_req_dry_run, so'rovni qayta ishlash intensivligiga hech qanday cheklovlar qo'llanilmaydigan (stavkalar chegarasisiz), lekin umumiy xotiradagi chegaralardan oshib ketadigan so'rovlar sonini hisobga olishni davom ettiradigan sinov rejimini faollashtiradigan;
  • Direktiv qo'shildi quruq_qurilish, bu ngx_http_limit_conn_module modulini sinov rejimiga o'tkazadi, unda ulanishlar soni cheklanmagan, lekin hisobga olinadi;
  • Qo'shilgan direktiv "auth_delay", bu parolni taxmin qilish intensivligini kamaytirish va undan himoya qilish uchun 401 javob kodi bilan ruxsatsiz so'rovlarga kechikish qo'shish imkonini beradi. hujumlar, kirish cheklangan tizimlarga kirishda operatsiyalarni bajarish vaqtini o'lchashni manipulyatsiya qilish (vaqt hujumi) parol, pastki so'rov natijasi yoki J.W.T. (JSON veb tokeni);
  • "Limit_rate" va "limit_rate_after" direktivalarida, shuningdek oqim modulining "proxy_upload_rate" va "proxy_download_rate" direktivalarida o'zgaruvchilar uchun qo'shimcha qo'llab-quvvatlash;
  • Direktivda grpc_pass manzilni belgilaydigan parametrda o'zgaruvchidan foydalanish uchun qo'shimcha yordam. Agar manzil domen nomi sifatida ko'rsatilgan bo'lsa, nom tavsiflangan serverlar guruhlari orasidan qidiriladi va topilmasa, rezolyutsiya yordamida aniqlanadi;
  • Yangi o'zgaruvchilar qo'shildi $proxy_protocol_server_addr ΠΈ $proxy_protocol_server_port, server manzili va PROXY protokoli sarlavhasidan olingan portni o'z ichiga oladi;
  • Modulda ngx_stream_limit_conn_module o'zgaruvchi qo'shiladi $limit_conn_status, u ulanishlar sonini cheklash natijasini saqlaydi: PASSED, REJECTED yoki REJECTED_DRY_RUN;
  • Modulda ngx_http_limit_req_modul o'zgaruvchi qo'shiladi $limit_req_status, bu so'rovlarning kelishi tezligini cheklash natijasini saqlaydi: O'TKAZILGAN, KECIK ETILGAN, RAD ETILGAN, DELAYED_DRY_RUN yoki REJECTED_DRY_RUN;
  • Odatiy bo'lib, modul yig'ilgan ngx_http_postpone_filter_module;
  • O'rnatilgan Perl tarjimoni tomonidan taqdim etilgan $r->internal_redirect() usuli yordamida "joylashuv" nomli bloklarni almashtirish uchun qo'shimcha yordam. Bu usul endi Escaped belgilar bilan URI larni qayta ishlashni o'z ichiga oladi;
  • "yuqoridagi" sozlamalar blokida "yuqoriga" direktivasidan foydalangandaxashΒ» mijoz-server ulanishi bilan yuk balansini tashkil qilish uchun, agar siz bo'sh kalit qiymatini belgilasangiz, endi yagona balanslash rejimi (aylanma rejim) faollashtirilgan;
  • Vaqt o'tishi bilan tezkor ulanishdan o'qishni oldini olish uchun agar mavjud bo'lsa, ioctl (FIONREAD) ga qo'ng'iroq qilish uchun qo'shimcha qo'llab-quvvatlash qo'shildi.

Manba: opennet.ru

a Izoh qo'shish