Всем привет.
Рад сообщить о выпуске новой версии NGINX Unit.
Этот релиз в основном включает ряд улучшений в поддержке приложений на
разных языках; в частности, добавлена поддержка входящих соединений по
протоколу WebSocket. Пока это коснулось только Node.js. На очереди -
поддержка в Java-модуле, которая уже почти завершена.
Чтобы принимать WebSocket-соединения в приложениях Node.js, вместо родного
объекта сервера воспользуйтесь объектом из нашего модуля unit-http:
var webSocketServer = require('unit-http/websocket').server;
Другой ожидаемой возможностью в этом релизе стало вычленение PATH_INFO
из пути запроса в PHP-модуле. Теперь Unit самостоятельно обрабатывает
запросы вида /app.php/some/path?some=args, которые иногда по старинке
используются для реализации семантических URL-ов.
Изменения в Unit 1.10.0 22.08.2019
*) Изменение: cookies в маршрутах теперь сопоставляются с учетом регистра.
*) Изменение: уменьшен уровень логирования распространенных ошибок,
возникающих, когда клиенты закрывают соединения.
*) Изменение: невостребованная опция "--include=" удалена из скрипта
./configure для Perl-модуля.
*) Добавление: встроенная реализация WebSocket-сервера для Node.js.
*) Добавление: вычленение PATH_INFO из URI запроса в PHP.
*) Добавление: маршрутизация запросов на основе схемы (HTTP или HTTPS).
*) Добавление: улучшена совместимость API c Node.js 11.10 и выше.
*) Исправление: ошибка переконфигурации при отсутствии объекта "listeners"
или "applications".
*) Исправление: возможный сбой при применении конфигурации большого объема.
Кроме того, с удовольствием отмечаю, что к работе над проектом подключились
два новых разработчика: Axel Duch и Tiago de Bem Natel de Moura.
Аксель уже реализовал для этого релиза сопоставление схемы и сейчас трудится
над дальнейшим расширением возможностей маршрутизации запросов по адресам
отправителя и получателя.
Параллельно Тьяго добился заметных успехов, работая над изоляцией процессов
приложений. За его трудом над поддержкой пространств имен Linux в Unit можно
наблюдать на GitHub:
- https://github.com/nginx/unit/pull/289
Также смотрите его сообщение с описанием предлагаемой функциональности:
- https://mailman.nginx.org/pipermail/nginx/2019-August/058321.html
Тем временем мы практически закончили работу над первичной поддержкой
проксирования и раздачи статики; с большой вероятностью новые возможности
(для начала в самом базовом виде) выйдут уже в следующем релизе, который
намечен на эту осень.
Следите за обновлениями.
--
Валентин Бартенев
Hello!
В реализации HTTP/2 в nginx было обнаружено несколько проблем
безопасности, которые могут приводить к чрезмерному потреблению
памяти и ресурсов процессора (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
Проблемам подвержен nginx, собранный с модулем ngx_http_v2_module (по
умолчанию не собирается), если в конфигурационном файле используется
параметр http2 директивы listen.
Проблемам подвержен nginx 1.9.5 - 1.17.2.
Проблемы исправлены в nginx 1.17.3, 1.16.1.
Спасибо Jonathan Looney из Netflix за обнаружение проблем.
--
Maxim Dounin
http://nginx.org/
Изменения в nginx 1.16.1 13.08.2019
*) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
потребление памяти и ресурсов процессора (CVE-2019-9511,
CVE-2019-9513, CVE-2019-9516).
--
Maxim Dounin
http://nginx.org/
Изменения в nginx 1.17.3 13.08.2019
*) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
потребление памяти и ресурсов процессора (CVE-2019-9511,
CVE-2019-9513, CVE-2019-9516).
*) Исправление: при использовании сжатия в логах могли появляться
сообщения "zero size buf"; ошибка появилась в 1.17.2.
*) Исправление: при использовании директивы resolver в SMTP
прокси-сервере в рабочем процессе мог произойти segmentation fault.
--
Maxim Dounin
http://nginx.org/