ืฉื—ืจื•ืจ ืฉืœ nginx 1.17.8 ื•-njs 0.3.8

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

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

  • ื‘ื”ื ื—ื™ื” grpc_pass ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื” ื‘ืคืจืžื˜ืจ ื”ืžื’ื“ื™ืจ ื›ืชื•ื‘ืช. ืื ื”ื›ืชื•ื‘ืช ืžืฆื•ื™ื ืช ื›ืฉื ืชื—ื•ื, ื”ืฉื ื™ืชื‘ืฆืข ื—ื™ืคื•ืฉ ื‘ื™ืŸ ืงื‘ื•ืฆื•ืช ื”ืฉืจืชื™ื ื”ืžืชื•ืืจื•ืช, ื•ืื ืœื ื ืžืฆื, ืื–ื™ ื ืงื‘ืข ื‘ืืžืฆืขื•ืช ืคื•ืชืจ;
  • ืชื•ืงื ื” ืฉื’ื™ืื” ื‘ืขืช ืขื™ื‘ื•ื“ ื‘ืงืฉื•ืช ืฆื™ื ื•ืจื•ืช ื“ืจืš ื—ื™ื‘ื•ืจ SSL ืฉื‘ื” ืขืœื•ืœ ืœื”ืชืจื—ืฉ ืคืกืง ื–ืžืŸ;
  • ื‘ื•ืฆืขื• ืชื™ืงื•ื ื™ื ื‘ื”ื ื—ื™ื” debug_points ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืคืจื•ื˜ื•ืงื•ืœ HTTP/2.

ื‘ื ื•ืกืฃ, ื ื™ืชืŸ ืœืฆื™ื™ืŸ ืกื•ื’ื™ื” njs 0.3.8, ืžืชื•ืจื’ืžืŸ JavaScript ืขื‘ื•ืจ ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ nginx. ืžืชื•ืจื’ืžืŸ njs ืžื™ื™ืฉื ืชืงื ื™ ECMAScript ื•ืžืืคืฉืจ ืœืš ืœื”ืจื—ื™ื‘ ืืช ื”ื™ื›ื•ืœืช ืฉืœ nginx ืœืขื‘ื“ ื‘ืงืฉื•ืช ื‘ืืžืฆืขื•ืช ืกืงืจื™ืคื˜ื™ื ื‘ืชืฆื•ืจื”. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืกืงืจื™ืคื˜ื™ื ื‘ืงื•ื‘ืฅ ืชืฆื•ืจื” ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืœื•ื’ื™ืงื” ืžืชืงื“ืžืช ืœืขื™ื‘ื•ื“ ื‘ืงืฉื•ืช, ื™ืฆื™ืจืช ืชืฆื•ืจื”, ื™ืฆื™ืจื” ื“ื™ื ืžื™ืช ืฉืœ ืชื’ื•ื‘ื”, ืฉื™ื ื•ื™ ื‘ืงืฉื”/ืชื’ื•ื‘ื”, ืื• ื™ืฆื™ืจื” ืžื”ื™ืจื” ืฉืœ ืงื˜ืขื™ื ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช ื‘ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜.

ื”ืžื”ื“ื•ืจื” ื”ื—ื“ืฉื” ืžื•ืกื™ืคื” ืชืžื™ื›ืช Promise ืขื‘ื•ืจ r.subrequest ืœืžื•ื“ื•ืœ nginx ื•ืฉื™ื ื•ื™ื™ื ื‘ืžื˜ืคืœ ื”ืžืืคื™ื™ื ื™ื r.parent. ื’ึทื:

  • ื”ื•ืกืคื” ืชืžื™ื›ื” ื‘ื”ื‘ื˜ื—ื”;
  • ื”ื•ืกืคื” ืชืžื™ื›ื” ืจืืฉื•ื ื™ืช ืขื‘ื•ืจ ืžืขืจื›ื™ ื”ืงืœื“ื”;
  • ื”ื•ืกืคื” ืชืžื™ื›ื” ืขื‘ื•ืจ ArrayBuffer;
  • ื”ื•ืกืคืช ืชืžื™ื›ืช ืกืžืœ ืจืืฉื•ื ื™ืช;
  • ื”ื•ืกื™ืฃ ืฉืœื™ื˜ื” ื—ื™ืฆื•ื ื™ืช ืขื‘ื•ืจ JSON.stringify();
  • ื”ื•ืกื™ืฃ Object.is();
  • ื”ื•ืกื™ืฃ Object.setPrototypeOf();
  • ืื•ืคืจื˜ื•ืจ ืฉืจืฉื•ืจ ืืคืก (ื”ืชืื—ื“ื•ืช);
  • ืชื™ืงืŸ ืืช Object.getPrototypeOf() ื›ื“ื™ ืœืขืžื•ื“ ื‘ืžืคืจื˜;
  • ืชื™ืงืŸ Object.prototype.valueOf() ื›ื“ื™ ืœืขืžื•ื“ ื‘ืžืคืจื˜;
  • ื‘ื™ืฆืข ืชื™ืงื•ืŸ ืœ-JSON.stringify() ืขื ืขืจื›ื™ื ืฉืื™ื ื ื ื™ืชื ื™ื ืœื”ื“ืคืกื” ื•
    ืคื•ื ืงืฆื™ื” ืชื—ืœื™ืฃ;

  • ืžืคืขื™ืœ "ื‘" ืงื‘ื•ืข ืœืคื™ ืžืคืจื˜;
  • ื‘ื™ืฆืข ืชื™ืงื•ืŸ ืœ- Object.defineProperties() ืœืคื™
    ืขื ืžืคืจื˜;

  • ืชื™ืงื ื• Object.create() ืœืคื™ ืžืคืจื˜.
  • ื‘ื•ืฆืข ืชื™ืงื•ืŸ ืœ- Number.prototype.toString(radix) ื›ืืฉืจ ืžืชืžื˜ื™ืงื” ืžื”ื™ืจื” ืžื•ืคืขืœืช;
  • ืžืืคื™ื™ื ื™ ืžื•ืคืข RegExp() ืชื•ืงื ื•;
  • ืชื•ืงื ื” ืฉื’ื™ืืช ื™ื™ื‘ื•ื โ€‹โ€‹ื‘ืขืช ื”ื™ื™ื‘ื•ื.

ืžืงื•ืจ: OpenNet.ru

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