Выпуск сервера приложений NGINX Unit 1.31

Опубликован сервер приложений 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.



Источник: http://www.opennet.ru/opennews/art.shtml? num=59699

© OpenNet