Публикуван е основният рилийз на nginx 1.31.5, в който продължава развитието на нови възможности. В паралелно поддържаната стабилна версия 1.30.x се внасят само промени, свързани с отстраняване на сериозни грешки и уязвимости. В бъдеще на базата на основната версия 1.31.x ще бъде формирана стабилна версия 1.32. Кодът на проекта е написан на езика C и се разпространява под лицензия BSD.
В новото издание:
- Добавен е Rest API за външно управление, позволяващ дистанционно презареждане на конфигурацията, получаване на данни за настройките и преглед на статуса на работните процеси. За активиране на поддръжката на API е предвидена компилационна опция „—with-control-api“ и аргумент на командния ред „-l“. Препоръчва се свързването на API към Unix сокет (nginx -l unix:/path/to/sock). Може да се използва Curl за достъп до API.
- Добавена е възможността за използване на променлива, започваща със символа „$“, като стойност на директивата Location. Стойността на променливата, изчислена в момента на изпълнение, определя условията за влизане в блока Location. Подобни Location могат да се използват вътре в други блокове Location или сами да съдържат вложени Location. map $arg_foo $pred { bar 1; qux 1; } location $pred { root html; }
- Реализиран е модул ngx_http_json_module, предоставящ възможности за парсинг на данни в JSON формат, извличане на отделни полета от JSON и използване на тези полета като променливи в конфигурацията на nginx.
- Добавена е директива «client_body_early_read», чийто активиране води до прочитане на тялото на请求то веднага след получаване на заглавките.
С едновременно достъпен рилийз njs 1.0.1, модул за интеграция на интерпретатор на JavaScript в http-сервера nginx. Njs позволява използването на JavaScript скриптове в конфигурационни файлове за разширяване на възможностите на nginx. Скриптовете могат да се използват за определяне на разширена логика на обработка на заявки, формиране на конфигурации, динамично генериране на отговори, модификация на 요청/отговор или бързо създаване на заглушки с решение на проблеми в уеб приложенията. Кодът на проекта е написан на C и се разпространява под лицензия BSD.
В рилийза njs 1.0.1 са отстранени три уязвимости: препълване на буфера в функцията xml.exclusiveC14n (CVE-2026-78689), заобикаляне на ограничението за достъп чрез js_access (CVE-2026-18329) и предизвикване на аварийно прекратяване на работния процес чрез манипулации с ngx.fetch (CVE-2026-78222).
Източник: opennet.ru
