Hoʻokuʻu ʻia o nginx 1.19.7, njs 0.5.1 a me NGINX Unit 1.22.0

Ua hoʻokuʻu ʻia ka lālā nui o ka nginx 1.19.7, kahi e hoʻomau ai ka hoʻomohala ʻana i nā hiʻohiʻona hou (ma ka lālā paʻa i kākoʻo ʻia ʻo 1.18, nā loli wale nō e pili ana i ka hoʻopau ʻana i nā hewa koʻikoʻi a me nā nāwaliwali.

Nā hoʻololi nui:

  • I ka pau ʻana o ke kaʻina hana limahana mai nā pili manuahi, pani ʻo nginx ʻaʻole i nā pili keepalive wale nō, akā pili pū kekahi e kali ana i ke kumu e pani ai ("lingering close").
  • ʻO ke code kaʻina hana pili ma HTTP/2 kokoke i ka hoʻokō HTTP/1.x. Ua hoʻopau ʻia ke kākoʻo no nā hoʻonohonoho hoʻonohonoho "http2_recv_timeout", "http2_idle_timeout" a me "http2_max_requests" no nā kuhikuhi maʻamau "keepalive_timeout" a me "keepalive_requests".
  • Ua wehe ʻia nā hoʻonohonoho "http2_max_field_size" a me "http2_max_header_size" a pono e hoʻohana ʻia nā "large_client_header_buffers".

I ka manawa like, ua hoʻokuʻu ʻia ʻo njs 0.5.1, he unuhi ʻōlelo JavaScript no ka kikowaena pūnaewele nginx. Hoʻokō ka mea unuhi ʻōlelo njs i nā kūlana ECMAScript a hiki iā ʻoe ke hoʻonui i ka hiki o nginx e hoʻoponopono i nā noi me ka hoʻohana ʻana i nā palapala i ka hoʻonohonoho. Hiki ke hoʻohana ʻia nā Scripts i loko o kahi faila hoʻonohonoho e wehewehe i ka loiloi holomua no ka hoʻoponopono ʻana i nā noi, ka hoʻokumu ʻana i kahi hoʻonohonoho, hoʻoulu i ka pane, hoʻololi i kahi noi/pane, a i ʻole ka hana wikiwiki ʻana i nā stubs e hoʻoponopono i nā pilikia ma nā noi pūnaewele.

Hoʻohui ka mana hou i ke kuhikuhi "js_header_filter", e hiki ai iā ʻoe ke hoʻonohonoho i kahi hana JavaScript no ka kānana a me ka hoʻololi ʻana i nā poʻo pane pane ʻole: js_import foo.js; wahi / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: kānana hana (r) { var kuki = r.headersOut ['Set-Cookie']; var len = r.args.len ? Helu(r.args.len): 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.longth > len); } hoʻokuʻu aku i {filter} paʻamau;

Hoʻohui pū ʻia ke ʻano ngx.fetch(), e hoʻokō ana i ka Fetch API, e hāʻawi ana i ka hana o ka mea kūʻai aku HTTP. Kākoʻo ke ala i ka hana ʻana o ke kino, nā poʻomanaʻo, buffer_size a me nā koho max_response_body_size. Kākoʻo ka mea pane pane i arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type and url method, and the Header object support get(), getAll() and has() ʻano hana . hana kiʻi (r) {ngx.fetch('http://nginx.org/') .then(pane => pane. kikokikona()) .then(kino => r.return(200, body)) .catch (e => r.return(501, e.message)); }

Hiki iā ʻoe ke nānā i ka paʻi ʻana o ka server noi NGINX Unit 1.22, e hāʻawi ana i kahi hopena no ka holo ʻana i nā noi pūnaewele ma nā ʻōlelo papahana like ʻole (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js a me Java). Hiki i ka NGINX Unit ke holo i nā noi he nui i nā ʻōlelo papahana like ʻole, hiki ke hoʻololi ʻia nā ʻāpana hoʻomaka me ka ʻole o ka pono e hoʻoponopono i nā faila a hoʻomaka hou. Ua kākau ʻia ke code ma C a māhele ʻia ma lalo o ka laikini Apache 2.0.

ʻO ka hoʻokuʻu hou o NGINX Unit i kālele i ka hoʻomaikaʻi ʻana i ke kūpaʻa, ka hoʻonui ʻana i nā mea hana hoʻāʻo, a me ka hoʻoponopono ʻana i nā pōpoki. Ma nā pūʻolo i hana ʻia no Linux, ua hoʻololi ʻia ka mea hoʻohana a me ka hui ma lalo o ka holo ʻana o NGINX Unit. Ma kahi o kekahi: ʻaʻohe kanaka, holo nā kaʻina hana ma lalo o kēlā me kēia mea hoʻohana i ka hui ʻāpana. Hoʻopaʻa pono ʻia me ka Stream API o nā mea ServerRequest a me ServerResponse mai ka module Node.js. ʻO ke koho "ala" no nā noi Python e hiki ai i nā papa kuhikuhi he nui ke kuhikuhi ʻia.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka