Выпуск 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 () в контейнере.
Источник: http://www.opennet.ru/opennews/art.shtml? num=52474
© OpenNet