Выпуск nginx 1.17.9 і njs 0.3.9

Сфарміраваны выпуск асноўнай галінкі Nginx 1.17.9, у рамках якой працягваецца развіццё новых магчымасцяў (у паралельна падтрымліваецца стабільнай галінцы 1.16 уносяцца толькі змены, злучаныя з ухіленнем сур'ёзных памылак і ўразлівасцяў).

Асноўныя змены:

  • Забаронена ўказанне некалькіх радкоў «Host» у
    загалоўку запыту;

  • Выпраўлена памылка пры якой nginx ігнараваў дадатковыя радкі
    "Transfer-Encoding" у загалоўку запыту;

  • Унесены выпраўленні, якія прадухіляюць уцечкі сокетаў пры выкарыстанні пратаколу HTTP/2;
  • Ухілены крах (segmentation fault) працоўнага працэсу, які выяўляецца пры выкарыстанні OCSP stapling;
  • Унесены выпраўленні ў модуль ngx_http_mp4_module;
  • Вырашана праблема ў выпадках, калі пры перанакіраванні памылак з кодам 494 з дапамогай дырэктывы 'error_page' мог вяртацца адказ з кодам 494 замест 400;
  • Ухілены ўцечкі сокетаў пры выкарыстанні подзапросов у модулі njs і дырэктывы aio.

Дадаткова можна адзначыць выпуск njs 0.3.9, інтэрпрэтатара мовы JavaScript для вэб-сервера nginx. Інтэрпрэтатар njs рэалізуе стандарты ECMAScript і дазваляе пашыраць магчымасці nginx па апрацоўцы запытаў з дапамогай скрыптоў у канфігурацыі. Скрыпты могуць выкарыстоўвацца ў файле канфігурацыі для вызначэння пашыранай логікі апрацоўкі запытаў, фармаванні канфігурацыі, дынамічнай генерацыі адказу, мадыфікацыі запыту/адказу ці хуткага стварэння заглушак з рашэннем праблем у web-прыкладаннях.

У новым выпуску ў модулі njs дададзена падтрымка рэжыму адмацаваных запытаў у r.subrequest(). Адказы на адмацаваныя подзапросы ігнаруюцца. У адрозненне ад звычайных подзапросов, адмацаваны подзапросов можа быць створаны ўнутры апрацоўшчыка зменнай. Таксама:

  • Дададзены API Promises для модуля "fs";
  • У модуль fs дададзены функцыі access(), symlink(), unlink(),
    realpath() і падобныя;

  • Уведзены эфектыўныя з пункта гледжання спажывання памяці звычайныя масівы;
  • Унесены паляпшэнні ў lexer;
  • Унесена выпраўленне ў супастаўленне натыўных функцый у зваротных трасіроўках (backtraces).
    слядах;

  • Выпраўленыя callback-выклікі ў модулі "fs";
  • Унесены выпраўленні ў Object.getOwnPropertySymbols();
  • Ухілена перапаўненне буфера дынамічнай памяці ў njs_json_append_string();
  • Унесена выпраўленне ў encodeURI() і decodeURI() у адпаведнасці са спецыфікацыяй;
  • Унесена выпраўленне ў Number.prototype.toPrecision();
  • Унесена выпраўленне апрацоўку аргумента прабелу ў JSON.stringify();
  • Унесена выпраўленне ў JSON.stringify() з аб'ектамі Number() і String();
  • Забяспечана экранаванне сімвалаў Unicode у JSON.stringify() у адпаведнасці
    са спецыфікацыяй;

  • Унесена выпраўленне ў імпарт не родных модуляў;
  • Унесена выпраўленне ў njs.dump() з асобнікам Date() у кантэйнеры.

Крыніца: opennet.ru

Дадаць каментар