Gefa út nginx 1.19.7, njs 0.5.1 og NGINX Unit 1.22.0

Aðalgrein nginx 1.19.7 hefur verið gefin út, þar sem þróun nýrra eiginleika heldur áfram (í samhliða studdu stöðugu greininni 1.18 eru aðeins gerðar breytingar sem tengjast útrýmingu alvarlegra villna og veikleika).

Helstu breytingar:

  • Þegar vinnuferli klárast af ókeypis tengingum lokar nginx nú ekki aðeins keepalive tengingum, heldur einnig tengingum sem bíða eftir að innstungan loki („langvarandi loka“).
  • Tengingarvinnslukóði í HTTP/2 er nálægt HTTP/1.x útfærslunni. Stuðningur við einstakar stillingar „http2_recv_timeout“, „http2_idle_timeout“ og „http2_max_requests“ hefur verið hætt í þágu almennu tilskipana „keepalive_timeout“ og „keepalive_requests“.
  • Stillingarnar „http2_max_field_size“ og „http2_max_header_size“ hafa verið fjarlægðar og „large_client_header_buffers“ ætti að nota í staðinn.

Á sama tíma kom út njs 0.5.1, JavaScript túlkur fyrir nginx vefþjóninn. njs túlkurinn innleiðir ECMAScript staðla og gerir þér kleift að auka getu nginx til að vinna úr beiðnum með því að nota forskriftir í uppsetningunni. Forskriftir geta verið notaðar í stillingarskrá til að skilgreina háþróaða rökfræði til að vinna úr beiðnum, búa til stillingar, búa til svar á kraftmikinn hátt, breyta beiðni/svari eða búa til stutta stubba til að leysa vandamál í vefforritum.

Nýja útgáfan bætir við „js_header_filter“ tilskipuninni, sem gerir þér kleift að stilla JavaScript aðgerð til að sía og breyta handahófskenndum svarhausum: js_import foo.js; staðsetning / { 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 ? Fjöldi(r.args.len): 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } útflutnings sjálfgefið {sía};

Einnig er bætt við ngx.fetch() aðferðinni, sem útfærir Fetch API, sem veitir HTTP biðlara virkni. Aðferðin styður úrvinnslu á meginmáli, hausum, buffer_size og max_response_body_size valmöguleikum. Svarhluturinn sem skilaði styður arrayBuffer(), bodyUsed, json(), hausa, ok, tilvísun, status, statusText, text(), tegund og url aðferðir og Header hluturinn styður get(), getAll() og has() aðferðir. fall fetch(r) { ngx.fetch('http://nginx.org/') .then(svara => svara.text()) .then(body => r.return(200, body)) .catch (e => r.return(501, e.message)); }

Þú getur líka athugað útgáfu NGINX Unit 1.22 forritaþjónsins, sem býður upp á lausn til að keyra vefforrit á ýmsum forritunarmálum (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js og Java). NGINX Unit getur keyrt mörg forrit samtímis á mismunandi forritunarmálum, þar sem hægt er að breyta ræsibreytum þeirra á kraftmikinn hátt án þess að þurfa að breyta stillingarskrám og endurræsa. Kóðinn er skrifaður í C ​​og dreift undir Apache 2.0 leyfinu.

Nýja útgáfan af NGINX Unit einbeitti sér að því að bæta stöðugleika, stækka prófunartæki og laga villur. Í pökkunum sem eru búnir til fyrir Linux hefur notandanum og hópnum sem NGINX Unit keyrir verið breytt undir. Í stað nobody:nobody keyra ferlar nú undir einstaka notendaeiningu í hópeiningunni. Tryggt samhæfni við Stream API ServerRequest og ServerResponse hlutanna úr Node.js einingunni. „Slóð“ valmöguleikinn fyrir Python forrit gerir kleift að tilgreina margar möppur.

Heimild: opennet.ru

Bæta við athugasemd