Nginx 1.19.7, njs 0.5.1 və NGINX Unit 1.22.0 buraxılışı

Nginx 1.19.7-nin əsas qolu buraxıldı, onun daxilində yeni funksiyaların inkişafı davam edir (paralel dəstəklənən stabil filial 1.18-də yalnız ciddi səhvlərin və zəifliklərin aradan qaldırılması ilə bağlı dəyişikliklər edilir).

Əsas dəyişikliklər:

  • İşçi prosesində pulsuz bağlantılar tükəndikdə, nginx indi nəinki saxlanılan bağlantıları, həm də rozetkanın bağlanmasını gözləyən əlaqələri də bağlayır (“uzaqlaşan bağlanma”).
  • HTTP/2-də əlaqə emal kodu HTTP/1.x tətbiqinə yaxındır. "http2_recv_timeout", "http2_idle_timeout" və "http2_max_requests" fərdi parametrlərinə dəstək "keepalive_timeout" və "keepalive_requests" ümumi direktivlərinin xeyrinə dayandırılıb.
  • "http2_max_field_size" və "http2_max_header_size" parametrləri silindi və əvəzinə "large_client_header_buffers" istifadə edilməlidir.

Eyni zamanda, nginx veb serveri üçün JavaScript tərcüməçisi olan njs 0.5.1 buraxıldı. Njs tərcüməçisi ECMAScript standartlarını tətbiq edir və konfiqurasiyadakı skriptlərdən istifadə edərək nginx-in sorğuları emal etmək qabiliyyətini genişləndirməyə imkan verir. Skriptlər konfiqurasiya faylında sorğuların işlənməsi, konfiqurasiya yaratmaq, dinamik olaraq cavab yaratmaq, sorğunun/cavabın dəyişdirilməsi və ya veb proqramlardakı problemləri həll etmək üçün cəld stublar yaratmaq üçün təkmil məntiqi müəyyən etmək üçün istifadə edilə bilər.

Yeni versiya “js_header_filter” direktivini əlavə edir ki, bu da ixtiyari cavab başlıqlarının süzülməsi və dəyişdirilməsi üçün JavaScript funksiyasını təyin etməyə imkan verir: js_import foo.js; yer / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: funksiya filtri(r) { var kukilər = r.headersOut['Set-Cookie']; var len = r.args.len ? Nömrə(r.args.len): 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } ixrac defolt {filtr};

HTTP müştəri funksionallığını təmin edən Fetch API tətbiq edən ngx.fetch() metodu da əlavə olunur. Metod gövdə, başlıqlar, bufer_size və max_response_body_size seçimlərinin işlənməsini dəstəkləyir. Qaytarılan Response obyekti arrayBuffer(), bodyUsed, json(), başlıqlar, ok, redirect, status, statusText, text(), type və url metodlarını, Header obyekti isə get(), getAll() və has() funksiyalarını dəstəkləyir. üsulları. fetch(r) { ngx.fetch('http://nginx.org/') .sonra(cavab yaz => reply.text()) .sonra(bədən => r.return(200, gövdə)) .catch (e => r.return(501, e.message)); }

Müxtəlif proqramlaşdırma dillərində (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js və Java) veb proqramların işləməsi üçün həll təklif edən NGINX Unit 1.22 proqram serverinin nəşrini də qeyd edə bilərsiniz. NGINX Vahidi eyni vaxtda müxtəlif proqramlaşdırma dillərində birdən çox proqramı işlədə bilər, onların işə salma parametrləri konfiqurasiya fayllarını redaktə etməyə və yenidən işə salmağa ehtiyac olmadan dinamik şəkildə dəyişdirilə bilər. Kod C dilində yazılmışdır və Apache 2.0 lisenziyası altında paylanmışdır.

NGINX Unit-in yeni buraxılışı sabitliyin yaxşılaşdırılmasına, sınaq alətlərinin genişləndirilməsinə və səhvlərin aradan qaldırılmasına yönəlib. Linux üçün yaradılan paketlərdə NGINX Vahidinin işlədiyi istifadəçi və qrup dəyişdirildi. Heç kim əvəzinə: heç kim, proseslər indi vahid qrupunda fərdi istifadəçi vahidi altında işləyir. Node.js modulundan ServerRequest və ServerResponse obyektlərinin Stream API ilə uyğunluğu təmin edilmişdir. Python proqramları üçün "yol" seçimi birdən çox qovluğu təyin etməyə imkan verir.

Mənbə: opennet.ru

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