Izdana je bila glavna veja nginxa 1.19.7, znotraj katere se nadaljuje razvoj novih funkcij (v vzporedno podprti stabilni veji 1.18 so narejene le spremembe, ki se nanašajo na odpravo resnih napak in ranljivosti).
Večje spremembe:
- Ko delavskemu procesu zmanjka prostih povezav, nginx zdaj zapre ne le vzdrževalne povezave, ampak tudi povezave, ki čakajo, da se vtičnica zapre (»zadržano zapiranje«).
- Koda za obdelavo povezave v HTTP/2 je podobna izvedbi HTTP/1.x. Podpora za posamezne nastavitve "http2_recv_timeout", "http2_idle_timeout" in "http2_max_requests" je bila opuščena v korist splošnih direktiv "keepalive_timeout" in "keepalive_requests".
- Nastavitve »http2_max_field_size« in »http2_max_header_size« sta bili odstranjeni in namesto tega je treba uporabiti »large_client_header_buffers«.
Hkrati je bil na voljo njs 0.5.1, interpreter JavaScripta za spletni strežnik nginx. Interpreter njs implementira standarde ECMAScript in vam omogoča razširitev zmogljivosti obdelave zahtev nginx z uporabo konfiguracijskih skriptov. Skripte je mogoče uporabiti v konfiguracijski datoteki za definiranje napredne logike obdelave zahtev, ustvarjanje konfiguracij, dinamično ustvarjanje odgovorov, spreminjanje zahtev/odgovorov ali hitro ustvarjanje zavihkov za reševanje težav v spletnih aplikacijah.
Nova različica dodaja direktivo “js_header_filter”, ki vam omogoča nastavitev funkcije JavaScript za filtriranje in spreminjanje poljubnih glav odgovorov: js_import foo.js; lokacija / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: filter funkcije(r) { var piškotkov = r.headersOut['Set-Cookie']; var len = r.args.len? Število (r.args.len): 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } izvoz privzetega {filtra};
Dodana je tudi metoda ngx.fetch(), ki implementira Fetch API, ki zagotavlja funkcionalnost odjemalca HTTP. Metoda podpira obdelavo možnosti body, headers, buffer_size in max_response_body_size. Vrnjeni objekt Response podpira metode arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type in url, objekt Header pa podpira get(), getAll() in has(). metode . funkcija fetch(r) { ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch (e => r.return(501, e.message)); }
Publikacijo lahko tudi označite strežnika NGINX Unit 1.22, rešitev za zagon spletnih aplikacij, napisanih v različnih programskih jezikih (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js in Java). NGINX Unit lahko hkrati zažene več aplikacij, napisanih v različnih jezikih, njihove parametre zagona pa je mogoče dinamično spreminjati brez potrebe po urejanju konfiguracijskih datotek ali ponovnem zagonu. Koda je napisana v jeziku C in je licencirana pod licenco Apache 2.0.
В новом выпуске NGINX Unit основное внимание было уделено повышению стабильности, расширению средств для тестирования и исправлению ошибок. В формируемых для Linux пакетах изменены пользователь и группа, под которыми запускается NGINX Unit. Вместо nobody:nobody процессы теперь выполняются под отдельным пользователем unit в группе unit. Обеспечена совместимость с API Stream объектов ServerRequest и ServerResponse из модуля Node.js. В опции «path» для Python-приложений разрешено указание нескольких каталогов.
Vir: opennet.ru
