Pagpagawas sa nginx 1.19.7, njs 0.5.1 ug NGINX Unit 1.22.0

Ang nag-unang sanga sa nginx 1.19.7 gipagawas, diin ang pag-uswag sa mga bag-ong bahin nagpadayon (sa parallel nga suportado nga lig-on nga sanga 1.18, ang mga pagbag-o nga may kalabutan sa pagwagtang sa mga seryoso nga mga sayup ug mga kahuyangan ang gihimo).

Panguna nga mga pagbag-o:

  • Kung ang usa ka proseso sa mamumuo nahutdan sa mga libre nga koneksyon, ang nginx karon nagsira dili lamang sa mga keepalive nga koneksyon, apan usab sa mga koneksyon nga naghulat sa socket nga magsira ("nagpabilin nga duol").
  • Ang code sa pagproseso sa koneksyon sa HTTP/2 duol sa pagpatuman sa HTTP/1.x. Ang suporta alang sa indibidwal nga mga setting nga "http2_recv_timeout", "http2_idle_timeout" ug "http2_max_requests" gihunong pabor sa kinatibuk-ang mga direktiba nga "keepalive_timeout" ug "keepalive_requests".
  • Ang mga setting nga "http2_max_field_size" ug "http2_max_header_size" gitangtang na ug ang "large_client_header_buffers" kinahanglan gamiton hinuon.

Sa samang higayon, ang njs 0.5.1 gibuhian, usa ka JavaScript interpreter alang sa nginx web server. Ang njs interpreter nagpatuman sa ECMAScript nga mga sumbanan ug nagtugot kanimo sa pagpalapad sa abilidad sa nginx sa pagproseso sa mga hangyo gamit ang mga script sa configuration. Ang mga script mahimong gamiton sa usa ka configuration file aron ipasabot ang advanced logic alang sa pagproseso sa mga hangyo, paghimo og configuration, dinamikong pagmugna og tubag, pag-usab sa usa ka hangyo/tubag, o dali nga paghimo og mga stub aron masulbad ang mga problema sa mga web application.

Ang bag-ong bersyon nagdugang sa "js_header_filter" nga direktiba, nga nagtugot kanimo sa pagtakda sa JavaScript function alang sa pagsala ug pag-usab sa arbitraryong tubag nga mga ulohan: js_import foo.js; lokasyon / {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 ? Numero(r.args.len): 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } export default {filter};

Gidugang usab ang ngx.fetch() nga pamaagi, nga nag-implementar sa Fetch API, nga naghatag ug HTTP client functionality. Ang pamaagi nagsuporta sa pagproseso sa lawas, mga ulohan, buffer_size ug max_response_body_size nga mga kapilian. Ang gibalik nga Response object nagsuporta sa arrayBuffer(), bodyUsed, json(), header, ok, redirect, status, statusText, text(), type ug url nga mga pamaagi, ug ang Header object nagsuporta get(), getAll() ug has() mga pamaagi. 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)); }

Mamatikdan usab nimo ang publikasyon sa NGINX Unit 1.22 application server, nga nagtanyag usa ka solusyon alang sa pagpadagan sa mga aplikasyon sa web sa lainlaing mga sinultian nga programming (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ug Java). Ang NGINX Unit mahimo nga dungan nga magpadagan sa daghang mga aplikasyon sa lainlaing mga sinultian nga programming, ang mga parameter sa paglansad nga mahimo’g mabag-o nga dinamikong wala’y kinahanglan nga i-edit ang mga file sa pag-configure ug i-restart. Ang code gisulat sa C ug giapod-apod ubos sa Apache 2.0 nga lisensya.

Ang bag-ong pagpagawas sa NGINX Unit naka-focus sa pagpauswag sa kalig-on, pagpalapad sa mga himan sa pagsulay, ug pag-ayo sa mga bug. Sa mga pakete nga gihimo para sa Linux, ang user ug grupo diin ang NGINX Unit midagan nausab. Imbes nga walay bisan kinsa:walay bisan kinsa, ang mga proseso karon nagdagan ubos sa indibidwal nga user unit sa unit group. Gipaneguro ang pagkaangay sa Stream API sa ServerRequest ug ServerResponse nga mga butang gikan sa Node.js module. Ang kapilian nga "dalan" alang sa mga aplikasyon sa Python nagtugot sa daghang mga direktoryo nga matino.

Source: opennet.ru

Idugang sa usa ka comment