ืฉื—ืจื•ืจ ืฉืœ nginx 1.17.1 ื•-njs 0.3.3

ื–ืžื™ืŸ ืฉื—ืจื•ืจ ื‘ืžืขืœื” ื”ื–ืจื 1.17.1, ืฉื‘ืชื•ื›ื• ื ืžืฉืš ื”ืคื™ืชื•ื— ืฉืœ ื™ื›ื•ืœื•ืช ื—ื“ืฉื•ืช (ื‘ืžืงื‘ื™ืœ ื ืชืžืš ื™ืฆื™ื‘ ืกื ื™ืฃ 1.16 ืžืชื‘ืฆืขื™ื ืจืง ืฉื™ื ื•ื™ื™ื ื”ืงืฉื•ืจื™ื ืœื‘ื™ื˜ื•ืœ ืฉื’ื™ืื•ืช ื•ืคื’ื™ืขื•ื™ื•ืช ื—ืžื•ืจื•ืช.

ื”ืขื™ืงืจื™ ืฉื™ื ื•ื™ื™ื:

  • ื ื•ืกืคื” ื”ื ื—ื™ื” limit_req_dry_run, ื”ืžืคืขื™ืœ ืืช ืžืฆื‘ ื”ืคืขืœืช ื”ื ื™ืกื™ื•ืŸ, ื‘ื• ืœื ืžื•ื—ืœื•ืช ื”ื’ื‘ืœื•ืช ืขืœ ืขื•ืฆืžืช ืขื™ื‘ื•ื“ ื”ื‘ืงืฉื•ืช (ืœืœื ื”ื’ื‘ืœืช ืชืขืจื™ืฃ), ืืš ืžืžืฉื™ื›ื” ืœื”ื™ืœืงื— ื‘ื—ืฉื‘ื•ืŸ ืžืกืคืจ ื”ื‘ืงืฉื•ืช ื”ื—ื•ืจื’ื•ืช ืžื”ืžื’ื‘ืœื•ืช ื‘ื–ื™ื›ืจื•ืŸ ื”ืžืฉื•ืชืฃ;
  • ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ื”ื ื—ื™ื™ืช "Upstream" ื‘ื‘ืœื•ืง ื”ื”ื’ื“ืจื•ืช "Upstream".ืฉื™ืจื™ืยป ื›ื“ื™ ืœืืจื’ืŸ ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ืขื ื›ืจื™ื›ืช ืฉืจืช-ืœืงื•ื—, ืื ืชืฆื™ื™ืŸ ืขืจืš ืžืคืชื— ืจื™ืง, ืžืฆื‘ ื”ืื™ื–ื•ืŸ ื”ืื—ื™ื“ (ืกื™ื‘ื•ื‘-ืจื•ื‘ื™ืŸ) ืžื•ืคืขืœ ื›ืขืช;
  • ืชื™ืงืŸ ืงืจื™ืกืช ื–ืจื™ืžืช ืขื‘ื•ื“ื” ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืžื˜ืžื•ืŸ ื‘ืฉื™ืœื•ื‘ ืขื ื”ื”ื ื—ื™ื” "image_filter" ื•ื”ืคื ื™ื” ืžื—ื“ืฉ ืฉืœ ื”ืžื˜ืคืœ ื‘ืงื•ื“ ื”ืฉื’ื™ืื” 415 ื‘ืืžืฆืขื•ืช ื”ื”ื ื—ื™ื” "error_page";
  • ืชื•ืงืŸ ืงืจื™ืกืช ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืฉื”ืชืจื—ืฉื” ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืžืชื•ืจื’ืžืŸ Perl ื”ืžื•ื‘ื ื”.

ื‘ื ื•ืกืฃ, ื ื™ืชืŸ ืœืฆื™ื™ืŸ ืกื•ื’ื™ื” njs 0.3.3, ืžืชื•ืจื’ืžืŸ JavaScript ืขื‘ื•ืจ ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ nginx. ืžืชื•ืจื’ืžืŸ 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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”