Пускане на nginx 1.17.9 и njs 0.3.9

Оформени освобождаване на главен клон nginx 1.17.9, в рамките на който продължава разработването на нови функции (в паралелно поддържана стабилна клон 1.16 Правят се само промени, свързани с отстраняването на сериозни грешки и уязвимости).

Основната промени:

  • Забранено е посочването на няколко реда „Хост“ в
    заглавка на заявка;

  • Поправена е грешка, при която nginx игнорира допълнителни редове
    „Трансфер-Кодиране“ в заглавката на заявката;

  • Направени са корекции за предотвратяване на изтичане на сокет при използване на HTTP/2 протокола;
  • Коригирана грешка при сегментиране в работния процес, която се появява при използване на OCSP телбод;
  • Направени са корекции в модула ngx_http_mp4_module;
  • Решен е проблем в случаите, когато при пренасочване на грешки с код 494 с помощта на директивата 'error_page' може да бъде върнат отговор с код 494 вместо 400;
  • Фиксирани течове на сокет при използване на подзаявки в модула njs и aio директивата.

Освен това може да се отбележи издаване njs 0.3.9, интерпретатор на JavaScript за уеб сървъра nginx. Интерпретаторът njs прилага стандартите на ECMAScript и ви позволява да разширите способността на nginx да обработва заявки с помощта на скриптове в конфигурацията. Скриптовете могат да се използват в конфигурационен файл за дефиниране на разширена логика за обработка на заявки, генериране на конфигурация, динамично генериране на отговор, модифициране на заявка/отговор или бързо създаване на мъничета за решаване на проблеми в уеб приложенията.

В новата версия модулът njs добави поддръжка за режим на отделна заявка в r.subrequest(). Отговорите на отделени подзапитвания се игнорират. За разлика от обикновените подзаявки, отделна подзаявка може да бъде създадена в манипулатор на променлива. Също:

  • Добавени API Promises за модула "fs";
  • Към модула “fs” са добавени функциите access(), symlink(), unlink().
    realpath() и подобни;

  • Въведени са обикновени масиви, ефективни по отношение на консумацията на памет;
  • Направени са подобрения в лексера;
  • Направена е корекция на картографирането на собствените функции в обратните трасировки.
    следи;

  • Фиксирани обратни повиквания в модула “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

Добавяне на нов коментар