nginx 1.19.7, njs 0.5.1 เช…เชจเซ‡ NGINX เชฏเซเชจเชฟเชŸ 1.22.0เชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ

nginx 1.19.7 เชจเซ€ เชฎเซเช–เซเชฏ เชถเชพเช–เชพ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชจเชตเซ€ เชธเซเชตเชฟเชงเชพเช“เชจเซ‹ เชตเชฟเช•เชพเชธ เชšเชพเชฒเซ เชฐเชนเซ‡ เช›เซ‡ (เชธเชฎเชพเช‚เชคเชฐ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เชธเซเชฅเชฟเชฐ เชถเชพเช–เชพ 1.18 เชฎเชพเช‚, เชฎเชพเชคเซเชฐ เช—เช‚เชญเซ€เชฐ เชญเซ‚เชฒเซ‹ เช…เชจเซ‡ เชจเชฌเชณเชพเชˆเช“เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพ เชธเช‚เชฌเช‚เชงเชฟเชค เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡).

เชฎเซเช–เซเชฏ เชซเซ‡เชฐเชซเชพเชฐเซ‹:

  • เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เชตเชฐเซเช•เชฐ เชชเซเชฐเซ‹เชธเซ‡เชธเชฎเชพเช‚ เชซเซเชฐเซ€ เช•เชจเซ‡เช•เซเชถเชจเซเชธ เช–เชคเชฎ เชฅเชˆ เชœเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ nginx เชนเชตเซ‡ เชซเช•เซเชค เช•เซ€เชชเชฒเชพเชˆเชต เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชœ เชจเชนเซ€เช‚, เชชเชฃ เชฒเชฟเช‚เช—เชฐเซ€เช‚เช— เช•เซเชฒเซ‹เช เชธเซเชŸเซ‡เชŸเชฎเชพเช‚ เชฐเชนเซ‡เชฒเชพ เช•เชจเซ‡เช•เซเชถเชจเซเชธเชจเซ‡ เชชเชฃ เชฌเช‚เชง เช•เชฐเซ‡ เช›เซ‡.
  • HTTP/2 เช•เชจเซ‡เช•เซเชถเชจ เชนเซ‡เชจเซเชกเชฒเชฟเช‚เช— เช•เซ‹เชกเชจเซ‡ HTTP/1.x เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ€ เชจเชœเซ€เช• เชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. "keepalive_timeout" เช…เชจเซ‡ "keepalive_requests" เชœเซ‡เชตเชพ เชธเชพเชฎเชพเชจเซเชฏ เชจเชฟเชฐเซเชฆเซ‡เชถเซ‹เชจเชพ เชฌเชฆเชฒเซ‡ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชธเซ‡เชŸเชฟเช‚เช—เซเชธ "http2_recv_timeout," "http2_idle_timeout," เช…เชจเซ‡ "http2_max_requests" เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เชฌเช‚เชง เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡.
  • "http2_max_field_size" เช…เชจเซ‡ "http2_max_header_size" เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡ "large_client_header_buffers" เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช.

เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, njs 0.5.1, เชฎเชพเชŸเซ‡ เชœเชพเชตเชพเชธเซเช•เซเชฐเชฟเชชเซเชŸ เช‡เชจเซเชŸเชฐเชชเซเชฐเซ€เชŸเชฐ เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ nginx. njs เช‡เชจเซเชŸเชฐเชชเซเชฐเซ€เชŸเชฐ ECMAScript เชงเซ‹เชฐเชฃเซ‹เชจเซ‡ เชฒเชพเช—เซ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ nginx เชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เซเชทเชฎเชคเชพเช“เชจเซ‡ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชเชกเชตเชพเชจเซเชธเซเชก เชตเชฟเชจเช‚เชคเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชคเชฐเซเช•เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ, เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเซ‹ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ, เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชชเซเชฐเชคเชฟเชญเชพเชตเซ‹ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ, เชตเชฟเชจเช‚เชคเซ€เช“/เชชเซเชฐเชคเชฟเชธเชพเชฆเซ‹เชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเชตเชพ เช…เชฅเชตเชพ เชตเซ‡เชฌ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชเชกเชชเชฅเซ€ เชธเซเชŸเชฌ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡.

เชจเชตเชพ เชธเช‚เชธเซเช•เชฐเชฃเชฎเชพเช‚ "js_header_filter" เชกเชพเชฏเชฐเซ‡เช•เซเชŸเชฟเชต เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ เชฎเชจเชธเซเชตเซ€ เชชเซเชฐเชคเชฟเชญเชพเชต เชนเซ‡เชกเชฐเซ‹เชจเซ‡ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเชตเชพ เช…เชจเซ‡ เชธเช‚เชถเซ‹เชงเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ JavaScript เชซเช‚เช•เซเชถเชจเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡: js_import foo.js; location / { 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 ? Number(r.args.len) : 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } export default {filter};

ngx.fetch() เชชเชฆเซเชงเชคเชฟ เชชเชฃ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡ Fetch API เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซ‡ เช›เซ‡, เชœเซ‡ HTTP เช•เซเชฒเชพเชฏเช‚เชŸ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชชเชฆเซเชงเชคเชฟ เชฌเซ‹เชกเซ€, เชนเซ‡เชกเชฐเซเชธ, เชฌเชซเชฐ_เชธเชพเช‡เช เช…เชจเซ‡ max_response_body_size เชตเชฟเช•เชฒเซเชชเซ‹เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เชฐเซ€เชŸเชฐเซเชจ เชฅเชฏเซ‡เชฒ เชฐเชฟเชธเซเชชเซ‹เชจเซเชธ เช‘เชฌเซเชœเซ‡เช•เซเชŸ arrayBuffer(), bodyUsed, json(), เชนเซ‡เชกเชฐเซเชธ, ok, redirect, status, statusText, text(), type เช…เชจเซ‡ url เชชเชฆเซเชงเชคเชฟเช“เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชนเซ‡เชกเชฐ เช‘เชฌเซเชœเซ‡เช•เซเชŸ get(), getAll(), เช…เชจเซ‡ has() เชชเชฆเซเชงเชคเชฟเช“เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. 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)); }

เชคเชฎเซ‡ เชชเซเชฐเช•เชพเชถเชจเชจเซ‡ เชชเชฃ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชธเชฐเซเชตเชฐ NGINX เชฏเซเชจเชฟเชŸ 1.22, เชตเชฟเชตเชฟเชง เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเช“ (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js, เช…เชจเซ‡ Java) เชฎเชพเช‚ เชฒเช–เซ‡เชฒเชพ เชตเซ‡เชฌ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เช‰เช•เซ‡เชฒ. NGINX เชฏเซเชจเชฟเชŸ เชเช•เชธเชพเชฅเซ‡ เชตเชฟเชตเชฟเชง เชญเชพเชทเชพเช“เชฎเชพเช‚ เชฒเช–เซ‡เชฒเชพ เชฌเชนเซเชตเชฟเชง เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชšเชฒเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชฒเซ‹เชจเซเชš เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ‡ เช—เซ‹เช เชตเชฃเซ€ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เช…เชฅเชตเชพ เชซเชฐเซ€เชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชฌเชฆเชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช•เซ‹เชก C เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ เช›เซ‡ เช…เชจเซ‡ Apache 2.0 เชฒเชพเช‡เชธเชจเซเชธ เชนเซ‡เช เชณ เชฒเชพเช‡เชธเชจเซเชธ เชชเซเชฐเชพเชชเซเชค เช›เซ‡.

ะ’ ะฝะพะฒะพะผ ะฒั‹ะฟัƒัะบะต NGINX Unit ะพัะฝะพะฒะฝะพะต ะฒะฝะธะผะฐะฝะธะต ะฑั‹ะปะพ ัƒะดะตะปะตะฝะพ ะฟะพะฒั‹ัˆะตะฝะธัŽ ัั‚ะฐะฑะธะปัŒะฝะพัั‚ะธ, ั€ะฐััˆะธั€ะตะฝะธัŽ ัั€ะตะดัั‚ะฒ ะดะปั ั‚ะตัั‚ะธั€ะพะฒะฐะฝะธั ะธ ะธัะฟั€ะฐะฒะปะตะฝะธัŽ ะพัˆะธะฑะพะบ. ะ’ ั„ะพั€ะผะธั€ัƒะตะผั‹ั… ะดะปั Linux ะฟะฐะบะตั‚ะฐั… ะธะทะผะตะฝะตะฝั‹ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒ ะธ ะณั€ัƒะฟะฟะฐ, ะฟะพะด ะบะพั‚ะพั€ั‹ะผะธ ะทะฐะฟัƒัะบะฐะตั‚ัั NGINX Unit. ะ’ะผะตัั‚ะพ nobody:nobody ะฟั€ะพั†ะตััั‹ ั‚ะตะฟะตั€ัŒ ะฒั‹ะฟะพะปะฝััŽั‚ัั ะฟะพะด ะพั‚ะดะตะปัŒะฝั‹ะผ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะตะผ unit ะฒ ะณั€ัƒะฟะฟะต unit. ะžะฑะตัะฟะตั‡ะตะฝะฐ ัะพะฒะผะตัั‚ะธะผะพัั‚ัŒ ั API Stream ะพะฑัŠะตะบั‚ะพะฒ ServerRequest ะธ ServerResponse ะธะท ะผะพะดัƒะปั Node.js. ะ’ ะพะฟั†ะธะธ ยซpathยป ะดะปั Python-ะฟั€ะธะปะพะถะตะฝะธะน ั€ะฐะทั€ะตัˆะตะฝะพ ัƒะบะฐะทะฐะฝะธะต ะฝะตัะบะพะปัŒะบะธั… ะบะฐั‚ะฐะปะพะณะพะฒ.

เชธเซ‹เชฐเซเชธ: opennet.ru

DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐ เชงเชฐเชพเชตเชคเซ€ เชธเชพเช‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ ๐Ÿ”ฅ DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐเซเชธ เชธเชพเชฅเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ | ProHoster