nginx 1.17.9 āĻāĻŦāĻ‚ njs 0.3.9 āĻāĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ

āĻ—āĻ āĻŋāĻ¤ āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ° āĻļāĻžāĻ–āĻž āĻĒā§āĻ°āĻ•āĻžāĻļ nginx 1.17.9, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻ•āĻžāĻļ āĻ…āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻĨāĻžāĻ•ā§‡ (āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ āĻļāĻžāĻ–āĻž 1.16 āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ—ā§āĻ°ā§āĻ¤āĻ° āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻĻā§‚āĻ°ā§€āĻ•āĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤

āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ:

  • āĻāĻ•āĻžāĻ§āĻŋāĻ• "āĻšā§‹āĻ¸ā§āĻŸ" āĻ˛āĻžāĻ‡āĻ¨ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§
    āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽ;

  • āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ— āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ nginx āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨ āĻ‰āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĻ›ā§‡
    āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻšā§‡āĻĄāĻžāĻ°ā§‡ "āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻžāĻ°-āĻāĻ¨āĻ•ā§‹āĻĄāĻŋāĻ‚";

  • HTTP/2 āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ•ā§‡āĻŸ āĻ˛āĻŋāĻ• āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • OCSP āĻ¸ā§āĻŸā§āĻ¯āĻžāĻĒāĻ˛āĻŋāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•āĻ°ā§āĻŽā§€ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ­āĻžāĻœāĻ¨ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • ngx_http_mp4_module āĻŽāĻĄāĻŋāĻ‰āĻ˛ā§‡ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • āĻāĻŽāĻ¨ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ 'error_page' āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•ā§‹āĻĄ 494 āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, 494 āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ•ā§‹āĻĄ 400 āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡;
  • njs āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻāĻŦāĻ‚ aio āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļā§‡ āĻ¸āĻžāĻŦāĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻĨāĻŋāĻ° āĻ¸āĻ•ā§‡āĻŸ āĻ˛āĻŋāĻ•āĨ¤

āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŸāĻž āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻāĻ¨āĻœā§‡āĻāĻ¸ 0.3.9, nginx āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻĻā§‹āĻ­āĻžāĻˇā§€āĨ¤ njs āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĒā§āĻ°ā§‡āĻŸāĻžāĻ° ECMAScript āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ nginx-āĻāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡, āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻ—āĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§/āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡, āĻŦāĻž āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻŸāĻžāĻŦ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡āĨ¤

āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻœā§‡, njs āĻŽāĻĄāĻŋāĻ‰āĻ˛ r.subrequest() āĻ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻŽā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ¸āĻžāĻŦāĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋāĻ° āĻ‰āĻ¤ā§āĻ¤āĻ° āĻ‰āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ¸āĻžāĻŦāĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋāĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡, āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ¸āĻžāĻŦāĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“:

  • "fs" āĻŽāĻĄāĻŋāĻ‰āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ API āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸(), āĻ¸āĻŋāĻŽāĻ˛āĻŋāĻ‚āĻ•(), āĻ†āĻ¨āĻ˛āĻŋāĻ™ā§āĻ•(), "fs" āĻŽāĻĄāĻŋāĻ‰āĻ˛ā§‡ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
    realpath() āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ;

  • āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ…ā§āĻ¯āĻžāĻ°ā§‡, āĻŽā§‡āĻŽāĻ°āĻŋ āĻ–āĻ°āĻšā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻĻāĻ•ā§āĻˇ, āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • āĻ˛ā§‡āĻ•ā§āĻ¸āĻžāĻ°ā§‡āĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • āĻŦā§āĻ¯āĻžāĻ•āĻŸā§āĻ°ā§‡āĻ¸āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
    āĻŸā§āĻ°ā§‡āĻ¸

  • "fs" āĻŽāĻĄāĻŋāĻ‰āĻ˛ā§‡ āĻ¸ā§āĻĨāĻŋāĻ° āĻ•āĻ˛āĻŦā§āĻ¯āĻžāĻ• āĻ•āĻ˛;
  • āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ Object.getOwnPropertySymbols();
  • njs_json_append_string() āĻ āĻ¸ā§āĻĨāĻŋāĻ° āĻšāĻŋāĻĒ āĻŦāĻžāĻĢāĻžāĻ° āĻ“āĻ­āĻžāĻ°āĻĢā§āĻ˛ā§‹;
  • āĻ¸ā§āĻĒā§‡āĻ¸āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ āĻŽā§‡āĻ¨ā§‡ āĻšāĻ˛āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻĨāĻŋāĻ° encodeURI() āĻāĻŦāĻ‚ decodeURI();
  • Number.prototype.toPrecision();
  • JSON.stringify(āĻ āĻ¸ā§āĻĒā§‡āĻ¸ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĢāĻŋāĻ•ā§āĻ¸āĻĄ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ‚);
  • JSON.stringify() āĻāĻ° Number() āĻāĻŦāĻ‚ String() āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • JSON.stringify() āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§‹āĻĄ āĻ…āĻ•ā§āĻˇāĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ›ā§‡āĻĄāĻŧā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ
    āĻ¸ā§āĻĒā§‡āĻ¸āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻš;

  • āĻ…-āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ Date() āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§‡ njs.dump() āĻ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨