nginx 1.17.6 เจ…เจคเฉ‡ njs 0.3.7 เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ

เจฆเจพ เจ—เจ เจจ เจ•เฉ€เจคเจพ เจ…เฉฑเจชเจธเจŸเจฐเฉ€เจฎ เจฐเฉ€เจฒเฉ€เจœเจผ nginx 1.17.6, เจœเจฟเจธ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจจเจตเฉ€เจ†เจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเจพ เจตเจฟเจ•เจพเจธ เจœเจพเจฐเฉ€ เจนเฉˆ (เจธเจฎเจพเจ‚เจคเจฐ เจธเจฎเจฐเจฅเจฟเจค เจธเจฅเจฟเจฐ เจตเจฟเฉฑเจš เจธเจผเจพเจ–เจพ 1.16 เจธเจฟเจฐเจซ เจ—เฉฐเจญเฉ€เจฐ เจ—เจฒเจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจฆเฉ‡ เจ–เจพเจคเจฎเฉ‡ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจฌเจฆเจฒเจพเจ… เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ).

เจฎเฉเฉฑเจ– เจคเจฌเจฆเฉ€เจฒเฉ€:

  • เจจเจตเฉ‡เจ‚ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ‡ เจ—เจ $proxy_protocol_server_addr ะธ $proxy_protocol_server_port, เจœเจฟเจธ เจตเจฟเฉฑเจš PROXY เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจธเจฟเจฐเจฒเฉ‡เจ– เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจชเจค เจธเจฐเจตเจฐ เจชเจคเจพ เจ…เจคเฉ‡ เจชเฉ‹เจฐเจŸ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆ;
  • เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจธเฉ€เจฎเจพ_เจ•เจพnเจ‚_เจกเฉเจฐเจพเจˆ_เจฐเฉ‚เจจ, ะฟะตั€ะตะฒะพะดัั‰ะฐั ะผะพะดัƒะปัŒ ngx_http_limit_conn_module ะฒ ั€ะตะถะธะผ ะฟั€ะพะฑะฝะพะณะพ ะทะฐะฟัƒัะบะฐ, ะฟั€ะธ ะบะพั‚ะพั€ะพะผ ั‡ะธัะปะพ ัะพะตะดะธะฝะตะฝะธะน ะฝะต ะพะณั€ะฐะฝะธั‡ะธะฒะฐะตั‚ัั, ะฝะพ ัƒั‡ะธั‚ั‹ะฒะฐะตั‚ัั.
  • เจฎเฉ‹เจกเฉ€เจŠเจฒ เจตเจฟเฉฑเจš ngx_stream_limit_conn_module ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะตั€ะตะผะตะฝะฝะฐั $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, nginx เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจฒเจˆ เจ‡เฉฑเจ• JavaScript เจฆเฉเจญเจพเจธเจผเฉ€เจเฅค njs เจฆเฉเจญเจพเจธเจผเฉ€เจ ECMAScript เจฎเจฟเจ†เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ 'เจคเฉ‡ เจ•เจพเจฐเจตเจพเจˆ เจ•เจฐเจจ เจฒเจˆ nginx เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚, เจ‡เฉฑเจ• เจธเฉฐเจฐเจšเจจเจพ เจคเจฟเจ†เจฐ เจ•เจฐเจจ, เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจœเจตเจพเจฌ เจฌเจฃเจพเจ‰เจฃ, เจ‡เฉฑเจ• เจฌเฉ‡เจจเจคเฉ€/เจœเจตเจพเจฌ เจจเฉ‚เฉฐ เจธเฉ‹เจงเจฃ, เจœเจพเจ‚ เจตเฉˆเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจธเจŸเฉฑเจฌ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‰เฉฑเจจเจค เจคเจฐเจ• เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

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

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹