Ho lokolloa ha nginx 1.19.7, njs 0.5.1 le NGINX Unit 1.22.0

Lekala le ka sehloohong la nginx 1.19.7 le lokollotsoe, moo nts'etsopele ea likarolo tse ncha e ntseng e tsoela pele (ka lehlakoreng le ts'oanang le ts'ehetsoeng le tsitsitseng 1.18, ke feela liphetoho tse amanang le ho felisoa ha liphoso tse tebileng le bofokoli bo etsoang).

Liphetoho tse kholo:

  • Ha ts'ebetso ea basebetsi e felloa ke likhokahano tsa mahala, nginx joale ha e koale likhokahano tsa keepalive feela, empa hape le likhokahano tse emetseng hore sokete e koalehe ("lininging close").
  • Khoutu ea ts'ebetso ea khokahano ho HTTP/2 e haufi le ts'ebetsong ea HTTP/1.x. Tšehetso bakeng sa litlhophiso tsa "http2_recv_timeout", "http2_idle_timeout" le "http2_max_requests" ha e sa sebelisoa molemong oa litaelo tse akaretsang "keepalive_timeout" le "keepalive_requests".
  • Litlhophiso tsa "http2_max_field_size" le "http2_max_header_size" li tlositsoe 'me "large_client_header_buffers" li lokela ho sebelisoa sebakeng sa eona.

Ka nako e ts'oanang, njs 0.5.1 e ile ea lokolloa, mofetoleli oa JavaScript bakeng sa seva sa websaete sa nginx. Mofetoleli oa njs o sebelisa litekanyetso tsa ECMAScript mme o u lumella ho holisa bokhoni ba nginx ba ho sebetsana le likopo u sebelisa mangolo ho tlhophiso. Lingoliloeng li ka sebelisoa ho faele ea tlhophiso ho hlalosa mohopolo o tsoetseng pele bakeng sa likopo tsa ho sebetsa, ho hlahisa tlhophiso, ho hlahisa karabelo ka matla, ho fetola kopo / karabelo, kapa ho theha li-stubs kapele ho rarolla mathata lits'ebetsong tsa webo.

Phetolelo e ncha e eketsa taelo ea "js_header_filter", e leng se u lumellang hore u behe mosebetsi oa JavaScript bakeng sa ho sefa le ho fetola lihlooho tsa likarabo tse hanyetsanang: js_import foo.js; sebaka / {js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: sefa mosebetsi (r) {var cookies = r.headersOut['Set-Cookie']; var len = r.args.len ? Nomoro(r.args.len) : 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } thomello ea kamehla {filthara};

Hape ke mokhoa oa ngx.fetch() o sebelisang Fetch API, e fanang ka ts'ebetso ea moreki oa HTTP. Mokhoa o ts'ehetsa ts'ebetso ea 'mele, lihlooho, buffer_size le max_response_body_size likhetho. Ntho e khutlisitsoeng ea Karabo e tšehetsa arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), mofuta le mekhoa ea url, le Header object tšehetsa get(), getAll() and has() mekhoa . mosebetsi fetch(r) {ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch (e => r.return(501, e.molaetsa)); }

U ka boela ua hlokomela ho phatlalatsoa ha seva sa kopo ea NGINX Unit 1.22, e fanang ka tharollo ea ho sebelisa lits'ebetso tsa marang-rang ka lipuo tse fapaneng tsa lenaneo (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js le Java). Setsi sa NGINX se ka tsamaisa lits'ebetso tse ngata ka nako e le 'ngoe ka lipuo tse fapaneng tsa mananeo, litekanyo tsa ho qala tse ka fetoloang ka matla ntle le tlhoko ea ho hlophisa lifaele tsa tlhophiso le ho qala bocha. Khoutu e ngotsoe ka C mme e ajoa tlasa laesense ea Apache 2.0.

Tokollo e ncha ea NGINX Unit e tsepamisitse maikutlo ho ntlafatseng botsitso, ho holisa lisebelisoa tsa tlhahlobo le ho lokisa liphoso. Ka har'a liphutheloana tse hlahisitsoeng bakeng sa Linux, mosebelisi le sehlopha seo NGINX Unit e sebetsang ho sona se fetotsoe. Sebakeng sa ho se be motho: ha ho motho, lits'ebetso joale li sebetsa tlasa yuniti ea mosebelisi ka mong sehlopheng sa sehlopha. E netefalitsoe hore e tsamaellana le Stream API ea lintho tsa ServerRequest le ServerResponse ho tsoa mojuleng oa Node.js. Khetho ea "tsela" bakeng sa lits'ebetso tsa Python e lumella li-directory tse ngata hore li boleloe.

Source: opennet.ru

Eketsa ka tlhaloso