เบเบฒเบ™เบ›เปˆเบญเบ nginx 1.17.6 เปเบฅเบฐ njs 0.3.7

เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™ เบเบฒเบ™เบ›เปˆเบญเบเบ™เป‰เปเบฒ nginx 1.17.6, เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบซเบกเปˆเบเบฑเบ‡เบชเบทเบšเบ•เปเปˆ (เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡ เบชเบฒเบ‚เบฒ 1.16 เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™).

เบ•เบปเป‰เบ™โ€‹เบ•เป เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡:

  • เป€เบžเบตเปˆเบกเบ•เบปเบงเปเบ›เปƒเบซเบกเปˆ $proxy_protocol_server_addr ะธ $proxy_protocol_server_port, เป€เบŠเบดเปˆเบ‡เบšเบฑเบ™เบˆเบธเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบžเบญเบ”เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™ PROXY;
  • เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡ limit_conn_dry_run, ะฟะตั€ะตะฒะพะดัั‰ะฐั ะผะพะดัƒะปัŒ ngx_http_limit_conn_module ะฒ ั€ะตะถะธะผ ะฟั€ะพะฑะฝะพะณะพ ะทะฐะฟัƒัะบะฐ, ะฟั€ะธ ะบะพั‚ะพั€ะพะผ ั‡ะธัะปะพ ัะพะตะดะธะฝะตะฝะธะน ะฝะต ะพะณั€ะฐะฝะธั‡ะธะฒะฐะตั‚ัั, ะฝะพ ัƒั‡ะธั‚ั‹ะฒะฐะตั‚ัั.
  • เปƒเบ™เป‚เบกเบ”เบนเบ™ ngx_stream_limit_conn_ เป‚เบกเบ”เบนเบ™ ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะตั€ะตะผะตะฝะฝะฐั $limit_conn_status, ะบะพั‚ะพั€ะฐั ั…ั€ะฐะฝะธั‚ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะพะณั€ะฐะฝะธั‡ะตะฝะธั ั‡ะธัะปะฐ ัะพะตะดะธะฝะตะฝะธะน: PASSED, REJECTED ะธะปะธ REJECTED_DRY_RUN;
  • เปƒเบ™เป‚เบกเบ”เบนเบ™ ngx_http_limit_req_module ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะตั€ะตะผะตะฝะฝะฐั $limit_req_status, ะบะพั‚ะพั€ะฐั ั…ั€ะฐะฝะธั‚ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะพะณั€ะฐะฝะธั‡ะตะฝะธั ัะบะพั€ะพัั‚ะธ ะฟะพัั‚ัƒะฟะปะตะฝะธั ะทะฐะฟั€ะพัะพะฒ: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN ะธะปะธ REJECTED_DRY_RUN.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เป„เบ”เป‰ เบ›เปˆเบญเบเบ•เบปเบง njs 0.3.7, เบ™เบฒเบเบžเบฒเบชเบฒ JavaScript เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ nginx. เบ™เบฒเบเบžเบฒเบชเบฒ njs เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ECMAScript เปเบฅเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ nginx เปƒเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป‚เบ”เบเปƒเบŠเป‰ scripts เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. Scripts เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป€เบซเบ”เบœเบปเบ™เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ, เปเบเป‰เป„เบ‚เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป / เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡, เบซเบผเบทเบเบฒเบ™เบชเป‰เบฒเบ‡ stubs เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบš.

ะ’ ะฝะพะฒะพะผ ะฒั‹ะฟัƒัะบะต ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะผะตั‚ะพะดะพะฒ Object.assign() ะธ Array.prototype.copyWithin(). ะ’ console.time() ะพะฑะตัะฟะตั‡ะตะฝะฐ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะผะตั‚ะพะบ. ะŸะตั€ะตั€ะฐะฑะพั‚ะฐะฝ ะบะพะด ะดะปั ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธั ัะพ ะฒะฝะตัˆะฝะธะผะธ ะพะฑัŠะตะบั‚ะฐะผะธ ะธ ะพะฑั€ะฐะฑะพั‚ะบะธ ะดะฐะฝะฝั‹ั… ะฒ ั„ะพั€ะผะฐั‚ะต JSON. ะ˜ะท CLI ัƒะดะฐะปั‘ะฝ ะฒั‹ะทะพะฒ console.help().

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™