nginx 1.17.1 เจ…เจคเฉ‡ njs 0.3.3 เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ

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

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

  • เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจธเฉ€เจฎเจพ_เจฆเจฟเฉฑเจค_เจฆเฉŒเจฒเฉ€_เจฐเฉ‚เจจ, เจœเฉ‹ เจŸเฉเจฐเจพเจ‡เจฒ เจฐเจจ เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจธเจฐเจ—เจฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจฌเฉ‡เจจเจคเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ€ เจคเฉ€เจฌเจฐเจคเจพ (เจฆเจฐ เจฆเฉ€ เจธเฉ€เจฎเจพ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚) 'เจคเฉ‡ เจ•เฉ‹เจˆ เจชเจพเจฌเฉฐเจฆเฉ€เจ†เจ‚ เจฒเจพเจ—เฉ‚ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจชเจฐ เจธเจผเฉ‡เจ…เจฐเจก เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจธเฉ€เจฎเจพเจตเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ;
  • "เจ…เฉฑเจชเจธเจŸเฉเจฐเฉ€เจฎ" เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฌเจฒเจพเจ• เจตเจฟเฉฑเจš "เจ…เฉฑเจชเจธเจŸเฉเจฐเฉ€เจฎ" เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚เจนเฉˆเจธเจผยป เจ•เจฒเจพเจ‡เฉฐเจŸ-เจธเจฐเจตเจฐ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจฒเฉ‹เจก เจธเฉฐเจคเฉเจฒเจจ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ–เจพเจฒเฉ€ เจ•เฉเฉฐเจœเฉ€ เจฎเฉเฉฑเจฒ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจฏเฉ‚เจจเฉ€เจซเจพเจฐเจฎ เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฟเฉฐเจ— เจฎเฉ‹เจก (เจฐเจพเจ‰เจ‚เจก-เจฐเฉ‹เจฌเจฟเจจ) เจนเฉเจฃ เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจนเฉˆ;
  • "image_filter" เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฟเจต เจฆเฉ‡ เจจเจพเจฒ เจ•เฉˆเจธเจผ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ…เจคเฉ‡ "error_page" เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฟเจต เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ 415 เจ—เจฒเจคเฉ€ เจ•เฉ‹เจก เจนเฉˆเจ‚เจกเจฒเจฐ เจจเฉ‚เฉฐ เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‡เฉฑเจ• เจตเจฐเจ•เจซเจฒเฉ‹ เจ•เฉเจฐเฉˆเจธเจผ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ†;
  • เจฌเจฟเจฒเจŸ-เจ‡เจจ เจชเจฐเจฒ เจ‡เฉฐเจŸเจฐเจชเฉเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจตเจพเจชเจฐเจจ เจตเจพเจฒเฉ‡ เจ‡เฉฑเจ• เจตเจฐเจ•เจซเจฒเฉ‹ เจ•เฉเจฐเฉˆเจธเจผ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน เจจเฉ‹เจŸ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจฐเจฟเจฒเฉ€เจœเจผ njs 0.3.3, nginx เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจฒเจˆ เจ‡เฉฑเจ• JavaScript เจฆเฉเจญเจพเจธเจผเฉ€เจเฅค njs เจฆเฉเจญเจพเจธเจผเฉ€เจ ECMAScript เจฎเจฟเจ†เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจฒเจˆ nginx เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚, เจ‡เฉฑเจ• เจธเฉฐเจฐเจšเจจเจพ เจคเจฟเจ†เจฐ เจ•เจฐเจจ, เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจœเจตเจพเจฌ เจฌเจฃเจพเจ‰เจฃ, เจ‡เฉฑเจ• เจฌเฉ‡เจจเจคเฉ€/เจœเจตเจพเจฌ เจจเฉ‚เฉฐ เจธเฉ‹เจงเจฃ, เจœเจพเจ‚ เจตเฉˆเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจธเจŸเฉฑเจฌ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‰เฉฑเจจเจค เจคเจฐเจ• เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

njs เจฆเฉ€ เจจเจตเฉ€เจ‚ เจฐเฉ€เจฒเฉ€เจœเจผ เจซเจœเจผเจฟเฉฐเจ— เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจฆเฉŒเจฐเจพเจจ เจชเจ›เจพเจฃเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจฎเฉŒเจœเฉ‚เจฆเจพ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† (process.pid, process.env.HOME, เจ†เจฆเจฟ) เจฆเฉ‡ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจ…เจคเฉ‡ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจ—เจฒเฉ‹เจฌเจฒ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ "เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†" เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพเฅค เจธเจพเจฐเฉ€เจ†เจ‚ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจตเจฟเจงเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค Array.prototype.fill() เจฆเจพ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค ECMAScript 5 เจตเจฟเฉฑเจš เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจธเฉฐเจŸเฉˆเจ•เจธ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจตเจพเจฒเจพ ะธ เจธเฉˆเจŸเจฐ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจจเจพเจฒ เจ‡เฉฑเจ• เจตเจธเจคเฉ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจฌเฉฐเจจเฉเจนเจฃ เจฒเจˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ:

var o = {a:2};
Object.defineProperty(o, 'b', {get:function(){return 2*this.a}});

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

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