Nginx 1.19.7, njs 0.5.1 va NGINX Unit 1.22.0 versiyalarining chiqarilishi

Nginx 1.19.7 ning asosiy tarmog'i chiqarildi, uning doirasida yangi xususiyatlarni ishlab chiqish davom etmoqda (parallel qo'llab-quvvatlanadigan barqaror filialda 1.18, faqat jiddiy xatolar va zaifliklarni bartaraf etish bilan bog'liq o'zgarishlar amalga oshiriladi).

Asosiy o'zgarishlar:

  • Ishchi jarayonda bo'sh ulanishlar tugagach, nginx endi nafaqat saqlovchi ulanishlarni, balki rozetka yopilishini kutayotgan ulanishlarni ham yopadi ("uzoqqa yopish").
  • HTTP/2 da ulanishni qayta ishlash kodi HTTP/1.x ilovasiga yaqin. "http2_recv_timeout", "http2_idle_timeout" va "http2_max_requests" individual sozlamalarini qo'llab-quvvatlash "keepalive_timeout" va "keepalive_requests" umumiy ko'rsatmalari foydasiga to'xtatildi.
  • "http2_max_field_size" va "http2_max_header_size" sozlamalari olib tashlandi va ularning o'rniga "large_client_header_buffers" dan foydalanish kerak.

Shu bilan birga, nginx veb-server uchun JavaScript tarjimoni bo'lgan njs 0.5.1 chiqarildi. Njs tarjimoni ECMAScript standartlarini amalga oshiradi va konfiguratsiyadagi skriptlar yordamida nginx so'rovlarini qayta ishlash qobiliyatini kengaytirish imkonini beradi. Skriptlar konfiguratsiya faylida so'rovlarni qayta ishlash, konfiguratsiyani yaratish, javobni dinamik ravishda yaratish, so'rovni/javobni o'zgartirish yoki veb-ilovalardagi muammolarni hal qilish uchun tezda stublarni yaratish uchun ilg'or mantiqni aniqlash uchun ishlatilishi mumkin.

Yangi versiyada “js_header_filter” direktivasi qoʻshildi, bu sizga ixtiyoriy javob sarlavhalarini filtrlash va oʻzgartirish uchun JavaScript funksiyasini oʻrnatish imkonini beradi: js_import foo.js; joy / {js_header_filter foo.filter; proksi_pass http://127.0.0.1:8081/; } foo.js: function filter(r) {var cookie fayllari = r.headersOut[‘Set-Cookie’]; var len = r.args.len? Raqam(r.args.len): 0; r.headersOut[‘Set-Cookie’] = cookies.filter(v=>v.length > len); } eksport standarti {filtr};

Shuningdek, HTTP mijoz funksiyasini taʼminlovchi Fetch API-ni amalga oshiradigan ngx.fetch() usuli ham qoʻshilgan. Usul tana, sarlavhalar, bufer_size va max_response_body_size parametrlarini qayta ishlashni qo'llab-quvvatlaydi. Qaytarilgan Response obyekti arrayBuffer(), bodyUsed, json(), sarlavhalar, ok, redirect, status, statusText, text(), type va url usullarini, Header obyekti get(), getAll() va has() funksiyalarini qo‘llab-quvvatlaydi. usullari. funktsiya fetch(r) { ngx.fetch('http://nginx.org/') .keyin(javob berish => reply.text()) .keyin (tana => r.return(200, tana)) .catch (e => r.return(501, e.xabar)); }

Shuningdek, turli xil dasturlash tillarida (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js va Java) veb-ilovalarni ishga tushirish uchun yechim taklif etuvchi NGINX Unit 1.22 dastur serverining nashr etilishini ham qayd etishingiz mumkin. NGINX birligi bir vaqtning o'zida turli dasturlash tillarida bir nechta ilovalarni ishga tushirishi mumkin, ularning ishga tushirish parametrlari konfiguratsiya fayllarini tahrirlash va qayta ishga tushirishni talab qilmasdan dinamik ravishda o'zgartirilishi mumkin. Kod C tilida yozilgan va Apache 2.0 litsenziyasi ostida tarqatiladi.

NGINX birligining yangi versiyasi barqarorlikni yaxshilash, sinov vositalarini kengaytirish va xatolarni tuzatishga qaratilgan. Linux uchun yaratilgan paketlarda NGINX birligi ishlaydigan foydalanuvchi va guruh o'zgartirildi. Hech kim: hech kim o'rniga, jarayonlar endi guruh birligidagi individual foydalanuvchi birligi ostida ishlaydi. Node.js modulidagi ServerRequest va ServerResponse obyektlarining Stream API bilan muvofiqligi taʼminlandi. Python ilovalari uchun "yo'l" opsiyasi bir nechta kataloglarni ko'rsatishga imkon beradi.

Manba: opennet.ru

a Izoh qo'shish