Kutolewa kwa nginx 1.19.7, njs 0.5.1 na NGINX Unit 1.22.0

Tawi kuu la nginx 1.19.7 limetolewa, ndani ambayo maendeleo ya vipengele vipya yanaendelea (katika tawi la 1.18 linaloungwa mkono sambamba, mabadiliko tu yanayohusiana na kuondoa makosa makubwa na udhaifu hufanywa).

Mabadiliko kuu:

  • Wakati mchakato wa mfanyakazi unapokwisha miunganisho ya bure, nginx sasa haifungi tu miunganisho ya keepalive, lakini pia miunganisho inayongojea soketi kufungwa ("inakaribia kufungwa").
  • Msimbo wa kuchakata muunganisho katika HTTP/2 uko karibu na utekelezaji wa HTTP/1.x. Usaidizi wa mipangilio ya mtu binafsi "http2_recv_timeout", "http2_idle_timeout" na "http2_max_requests" umekataliwa kwa ajili ya maagizo ya jumla "keepalive_timeout" na "keepalive_requests".
  • Mipangilio "http2_max_field_size" na "http2_max_header_size" imeondolewa na "large_client_header_buffers" inapaswa kutumika badala yake.

Wakati huo huo, njs 0.5.1 ilitolewa, mkalimani wa JavaScript kwa seva ya wavuti ya nginx. Mkalimani wa njs hutekeleza viwango vya ECMAScript na hukuruhusu kupanua uwezo wa nginx kushughulikia maombi kwa kutumia hati katika usanidi. Hati zinaweza kutumika katika faili ya usanidi ili kufafanua mantiki ya kina kwa ajili ya maombi ya kuchakata, kutengeneza usanidi, kutoa jibu kwa nguvu, kurekebisha ombi/jibu, au kuunda vijiti haraka ili kutatua matatizo katika programu za wavuti.

Toleo jipya linaongeza maagizo ya "js_header_filter", ambayo hukuruhusu kuweka kazi ya JavaScript kwa kuchuja na kubadilisha vichwa vya majibu kiholela: js_import foo.js; eneo / {js_header_filter foo.filter; proksi_pass http://127.0.0.1:8081/; } foo.js: kichujio cha kukokotoa (r) { var cookies = r.headersOut[β€˜Set-Cookie’]; var len = r.args.len ? Nambari(r.args.len) : 0; r.headersOut[β€˜Set-Cookie’] = cookies.filter(v=>v.length > len); } hamisha chaguomsingi {filter};

Pia imeongezwa ni mbinu ya ngx.fetch(), ambayo hutekeleza API ya Kuleta, ambayo hutoa utendaji wa mteja wa HTTP. Mbinu hii inasaidia uchakataji wa vipengele vya mwili, vichwa, saizi_ya_bufa na max_response_body_size_chaguo. Kitu cha Majibu kilichorejeshwa kinaauni arrayBuffer(), bodyUsed, json(), vichwa, sawa, kuelekeza kwingine, hali, statusText, text(), aina na mbinu za url, na kitu cha Kichwa kinaauni get(), getAll() na ina() mbinu. kazi ya kuleta(r) {ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch (e => r.return (501, e.message)); }

Unaweza pia kutambua uchapishaji wa seva ya maombi ya NGINX Unit 1.22, ambayo hutoa suluhisho la kuendesha programu za wavuti katika lugha mbalimbali za programu (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js na Java). Kitengo cha NGINX kinaweza wakati huo huo kuendesha programu nyingi katika lugha tofauti za programu, vigezo vya uzinduzi ambavyo vinaweza kubadilishwa kwa nguvu bila ya haja ya kuhariri faili za usanidi na kuanzisha upya. Nambari hiyo imeandikwa kwa C na kusambazwa chini ya leseni ya Apache 2.0.

Toleo jipya la Kitengo cha NGINX lililenga kuboresha uthabiti, kupanua zana za majaribio na kurekebisha hitilafu. Katika vifurushi vinavyotengenezwa kwa ajili ya Linux, mtumiaji na kikundi ambacho Kitengo cha NGINX kinaendesha kimebadilishwa. Badala ya nobody:nobody, michakato sasa inaendeshwa chini ya kitengo cha mtumiaji binafsi katika kitengo cha kikundi. Imehakikisha upatanifu na API ya Tiririsha ya ServerRequest na ServerResponse vitu kutoka kwa moduli ya Node.js. Chaguo la "njia" kwa programu za Python inaruhusu saraka nyingi kubainishwa.

Chanzo: opennet.ru

Kuongeza maoni