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 jarayonida bo'sh ulanishlar tugagach, nginx endi nafaqat saqlab qolinadigan ulanishlarni, balki yopiq holatdagi ulanishlarni ham yopadi.
- HTTP/2 ulanishini boshqarish kodi HTTP/1.x implementatsiyasiga yaqinlashtirildi. "http2_recv_timeout", "http2_idle_timeout" va "http2_max_requests" individual sozlamalarini qo'llab-quvvatlash to'xtatildi va "keepalive_timeout" va "keepalive_requests" umumiy direktivalari o'rniga o'zgartirildi.
- "http2_max_field_size" va "http2_max_header_size" sozlamalari olib tashlandi va buning o'rniga "large_client_header_buffers" dan foydalanish kerak.
Shu bilan birga, njs 0.5.1, JavaScript tarjimoni veb-server nginx. njs interpretatori ECMAScript standartlarini amalga oshiradi va konfiguratsiya skriptlari yordamida nginx so'rovlarni qayta ishlash imkoniyatlarini kengaytirish imkonini beradi. Skriptlardan konfiguratsiya faylida ilg'or so'rovlarni qayta ishlash mantig'ini aniqlash, konfiguratsiyalarni yaratish, javoblarni dinamik ravishda yaratish, so'rovlar/javoblarni o'zgartirish yoki veb-ilovalardagi muammolarni hal qilish uchun tezda stublar yaratish uchun foydalanish mumkin.
Yangi versiyada "js_header_filter" direktivasi qo'shildi, bu sizga ixtiyoriy javob sarlavhalarini filtrlash va o'zgartirish uchun JavaScript funktsiyasini belgilash imkonini beradi: js_import foo.js; location / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: function filter(r) { var cookies = r.headersOut['Set-Cookie']; var len = r.args.len ? Number(r.args.len) : 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } export default {filter};
ngx.fetch() usuli ham qo'shildi, bu HTTP mijoz funksiyasini ta'minlaydigan Fetch API ni amalga oshiradi. Usul body, headers, buffer_size va max_response_body_size parametrlarini qo'llab-quvvatlaydi. Qaytarilgan Response obyekti arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type va url usullarini, Header obyekti esa get(), getAll() va has() usullarini qo'llab-quvvatlaydi. function fetch(r) { ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch(e => r.return(501, e.message)); }
Siz shuningdek, nashrni belgilashingiz mumkin server NGINX Unit 1.22, turli dasturlash tillarida (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js va Java) yozilgan veb-ilovalarni ishga tushirish uchun yechim. NGINX Unit bir vaqtning o'zida turli tillarda yozilgan bir nechta ilovalarni ishga tushirishi mumkin va ularning ishga tushirish parametrlari konfiguratsiya fayllarini tahrirlash yoki qayta ishga tushirish zaruratisiz dinamik ravishda o'zgartirilishi mumkin. Kod C tilida yozilgan va Apache 2.0 litsenziyasi ostida litsenziyalangan.
NGINX Unitning yangi versiyasi barqarorlikni oshirish, sinov imkoniyatlarini kengaytirish va xatolarni tuzatishga qaratilgan edi. Linux NGINX Unit paketlarda ishlaydigan foydalanuvchi va guruh o'zgartirildi. Nobody:nobody o'rniga, jarayonlar endi unit guruhidagi alohida unit nomli foydalanuvchi ostida ishlaydi. Node.js modulidagi ServerRequest va ServerResponse obyektlari uchun Stream API bilan moslik ta'minlandi. Endi Python ilovalari uchun "yo'l" parametrida bir nechta kataloglarni ko'rsatish mumkin.
Manba: opennet.ru
