Дата публикации:Fri, 01 Sep 2023 19:55:13 +0300
Опубликован сервер приложений NGINX Unit 1.31.0, в рамках которого развивается решение для обеспечения запуска web-приложений на различных языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js, WebAssembly и Java). Под управлением NGINX Unit может одновременно выполняться несколько приложений на разных языках программирования, параметры запуска которых можно изменять динамически без необходимости правки файлов конфигурации и перезапуска. Код написан на языке Си и распространяется под лицензией Apache 2.0. С особенностями NGINX Unit можно познакомиться в анонсе первого выпуска.
В новой версии:
- Добавлен экспериментальный модуль для выполнения на стороне сервера приложений, скомпилированных в универсальный промежуточный код WebAssembly, который может запускаться в любых ОС и при использовании JIT демонстрирует производительность, близкую к нативному коду.
В блоки "action" и "fallback" добавлена поддержка выражения "response_headers" для добавления, удаления или изменения HTTP-заголовков. В качестве параметра задаётся список в виде "имя_заголовка/значение". Если указанное имя заголовка совпадает с уже выставленным в ответе заголовком, то значение заголовка будет изменено, если заголовок отсутствует - то он будет добавлен, если в качестве значения указан "null" - заголовок будет удалён. Значения можно формировать через вызов JavaScript-функций (NJS) или указание фиксированных данных.
{
"action": {
"pass": "applications/api",
"response_headers": {
"X-Version": null,
"Upper-Case": "`${host.toUpperCase()}`"
}
}
}
Добавлены переменные, содержащие значения HTTP-заголовков ответов, которые можно использовать для изменения или создания других HTTP-заголовков.
{
"action": {
"pass": "applications/calc",
"response_headers": {
"Content-Type": "${response_header_content_type};charset=iso-8859-1"
}
}
}
В утилиту командной строки unitc встроена возможность редактирования JSON-конфигурации NGINX Unit через обращение к API.
unitc EDIT /config
Для приложений на языке Python, использующих ASGI (Asynchronous Server Gateway Interface), добавлена поддержка параметра lifespan_state.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=59699