Релиз Unit 1.7
Валентин Бартенев
vbart на nginx.com
Пт Дек 21 14:05:28 UTC 2018
Здравствуйте.
Рад сообщить о выпуске новой версии NGINX Unit.
Это корректирующий выпуск, который нацелен на повышение стабильности Node.js
модуля. Нам удалось добиться существенных результатов и теперь поддержка
Node.js в лучшем состоянии.
Изменения в Unit 1.7 20.12.2018
*) Изменение: теперь rpath задается в модуле Ruby, только если библиотека
не найдена в путях по умолчанию; это позволяет соблюсти требования к
пакетированию в некоторых системах.
*) Исправление: не работали опции PHP "disable_functions" и
"disable_classes", заданные через управляющий API.
*) Исправление: не срабатывали Promises для данных из запросов в Node.js.
*) Исправление: различные проблемы совместимости с приложениями Node.js.
*) Исправление: в модуле Node.js происходила ошибка сегментации, если
приложение читало тело запроса после вызова request.end().
*) Исправление: в модуле Node.js происходила ошибка сегментации, если
приложение пыталось дважды отправить заголовок.
*) Исправление: при манипуляциях с полями заголовка ответа в модуле Node.js
не принималось во внимание, что регистр их имен не должен учитываться.
*) Исправление: неперехваченные исключения в Node.js не записывались в лог.
*) Исправление: глобальная установка модуля Node.js из исходников не
работала в некоторых окружениях; ошибка появилась в версии 1.6.
*) Исправление: обратная трассировка исключений при инициализации приложений
на Python не записывалась в лог.
*) Исправление: модуль PHP не собирался, если интерпретатор PHP был собран
с включенной потокобезопасностью.
Хайли лайкли, данный релиз станет последним в 2018 году.
И от всей нашей команды Unit-а я поздравляю вас с наступающим Новым Годом.
2018 год получился очень насыщенным с точки зрения развития проекта Unit.
Множество важных нововведений удалось реализовать, включая:
- Расширенное управление процессами, что позволяет динамически масштабировать
приложение в зависимости от нагрузки. Спасибо Максиму Романову, который
преимущественно работал над этой возможностью.
Документация: https://unit.nginx.org/configuration/#process-management
- Поддержка приложений на Perl, Ruby и Node.js. Спасибо Александру Борисову,
который занимался разработкой этих языковых модулей.
- TLS и интерфейс для управления хранилищем сертификатов, который позволяет
динамически загружать и перенастраивать сертификаты. Спасибо Игорю Сысоеву,
который работал вместе со мной над этой возможностью.
Документация: https://unit.nginx.org/configuration/#ssl-tls-and-certificates
- C API для языковых модулей был вынесен в отдельную библиотеку, что сильно
облегчило интеграцию с Node.js и помогло с предстоящим внедрением поддержки
Java приложений. Ещё раз спасибо Максиму Романову за эту работу.
- Начальная поддержка логирования доступа.
Документация: https://unit.nginx.org/configuration/#access-log
- Расширенные настройки приложений, включая переменные окружения, аргументы
запуска, опции PHP и путей к php.ini.
Не могу вообразить выпуск всей этой функциональности без кропотливой работы
нашего инженера по качеству Андрея Зеленкова. Он беспрестанно повышал покрытие
кода Unit-а функциональными тестами, проводил различное фаззинг-тестирование и
оповещал разработчиков о любом подозрительном поведении сервера.
Также одним из ключевых достижений этого года стало существенное улучшение
полноты и качества документации. Сайт unit.nginx.org теперь полностью
актуализирован и содержит информацию обо всех появившихся возможностях,
как в самых последних, так и во всех более ранних версиях Unit-а.
С этой задачей успешно справился наш технический писатель Артем Конев.
Кроме того, он продолжает перерабатывать документацию и планирует серию Howto
по настройке Unit-а в различных ситуациях и для запуска разных приложений.
Если у вас есть пожелания по конкретным приложениям, которые вы хотели бы
запускать в Unit-е, то, пожалуйста, создайте запрос по документации на GitHub:
- https://github.com/nginx/unit-docs/issues
Спасибо нашим системным инженерам: Андрею Белову и Константину Павлову,
которые обеспечивали свежими пакетами репозитории для различных дистрибутивов
и подготавливали образы для Docker-а.
Спасибо нашему продуктовому менеджеру Николаю Шадрину, который помогал со
стратегией развития и блестяще выступал на конференциях по всему миру.
Вы можете увидеть его в записи с недавней конференции NGINX Conf 2018,
где он демонстрировал последние возможности Unit-а:
- https://www.youtube.com/watch?v=JQZKbIG3uro
Безусловно всё, что я упомянул, было бы невозможно без нашего замечательного
сообщества пользователей. Они по достоинству оценили перспективы Unit-а и
начали постепенно переносить на него свои проекты. Благодарю всех, кто сообщал
о найденных ошибках и предлагал различные интересные идеи к реализации, оставлял
ценные пожелания по дальнейшему развитию проекта, которые безусловно будут
учтены по мере возможности. Мы приглашаем каждого принять участие через список
рассылки:
- http://mailman.nginx.org/mailman/listinfo/unit
или в GitHub:
- https://github.com/nginx/unit
Особенно хочется отметить 洪志道 (Hong Zhi Dao), как одного из самых активных
участников сообщества, который не только сообщает об ошибках, но и регулярно
вычитывает код, задает наводящие вопросы и присылает различные патчи с
улучшениями. Спасибо ему огромное за вклад в проект.
Отдельное спасибо ответственным за пакеты Unit-а в различных системах, среди
которых: Сергей Осокин (FreeBSD), Ralph Seichter (Gentoo), André Klitzing
(Alpine Linux) и Julian Brost (Arch Linux). Извините, если кто-то поддерживает
репозиторий с пакетами Unit-а в одном из дистрибутивов и не был упомянут.
Вы можете открыть запрос на GitHub для внесения вашего репозитория в секцию
Installation сайта unit.nginx.org:
- https://github.com/nginx/unit-docs/issues
К сожалению, нам не удалось достигнуть всех наших грандиозных целей на этот год.
Разработку некоторой функциональности пришлось перенести на будущий год.
Сейчас продолжается работа над поддержкой WebSocket, модулем Java,
маршрутизацией запросов и раздачей статики.
Мы уже достигли неплохого прогресса в поддержке Java. Эта разработка ведется
в отдельном публичном репозитории на GitHub:
- https://github.com/mar0x/unit
Таким образом, если вы заинтересованы в запуске приложений на Java, то уже
можете принять участие и пробовать.
Множество других интересных возможностей и анонсов ждет Unit в 2019 году.
Спасибо всем, кто следит за проектом, и желаю всего наилучшего.
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru