Издание на nginx 1.25.3, njs 0.8.2 и NGINX Unit 1.31.1

Формирован е основен клон nginx 1.25.3, в който продължава развитието на нови възможности. В паралелно поддържания стабилен клон 1.24.x се извършват само промени, свързани с отстраняване на сериозни грешки и уязвимости. В бъдеще на базата на основния клон 1.25.x ще бъде създаден стабилен клон 1.26. Кодът на проекта е написан на езика C и е разпространен под лицензия BSD.

Сред промените:

  • Усилена защита срещу аномална активност на клиенти HTTP/2, и по-специално срещу DoS атаки от клас „Бързо нулиране“, при които се създава голям брой незабавно нулирани потоци в рамките на едно HTTP/2 свързване. В конфигурацията по подразбиране подобни атаки стигат до лимита на броя заявки на свързване „keepalive_requests“ (след всеки 1000 заявки, свързването ще бъде нулирано) и в ограниченията „limit_req“. За по-ранно реагиране на флуда с заявки чрез множество потоци добавено е допълнително ограничение, което не позволява по подразбиране да бъдат създавани повече от 256 (2 * max_concurrent_streams) нови потока на всеки цикъл на обработка на събития. Новото ограничение позволява да се започне блокиране на заявки преди достигането на общия лимит за броя на едновременните потоци, например, когато потоките се обработват асинхронно или се нулират. Аналогична промяна също е включена в изданието angie 1.3.1 (форк на nginx), публикувано преди седмица.
  • Подобрено управление на буферите, използвани при автоматично определяне на HTTP/2 свързвания.
  • Повишена производителност при стартиране на конфигурации с голям брой директиви „location“.
  • Отстранено аварийно завършване на работния процес, наблюдавано при опит за използване на HTTP/2 без SSL.
  • Коригирана некоректна обработка на връщания от бекенда заглавие „Status“ с празен пояснителен текст.
  • Отстранена утечка на памет при пренастройване, възникваща при сборка с библиотеката PCRE2.
  • Извършена е голяма порция поправки и подобрения, свързани с поддръжката на протокола HTTP/3.

Също така беше издаден njs 0.8.2, интерпретатор на JavaScript. веб-сервера nginx. Интерпретатор njs реализира стандартите ECMAScript и позволява разширяване на възможностите на nginx при обработката на заявки чрез скриптове в конфигурацията. Скриптовете могат да се използват в конфигурационния файл за определяне на разширена логика за обработка на заявки, формиране на конфигурация, динамично генериране на отговор, модифициране на заявка/отговор или бързо създаване на заглушки за решаване на проблеми в уеб приложенията. В новата версия е добавен обектът console, който предоставя методи за error(), info(), log(), time(), timeEnd() и warn(). В модула fs е добавен методът fs.existsSync().

Също така може да се отбележи публикуването на сървъра за приложения NGINX Unit 1.31.1, предоставящо решение за стартиране на уеб приложения на различни програмни езици (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js и Java). Под управлението на NGINX Unit може едновременно да се изпълняват няколко приложения на различни програмни езици, параметрите на стартиране на които могат да се изменят динамично без необходимост от редактиране на конфигурационни файлове и рестартиране. Освен поправките на грешки, в новата версия в модула Wasm е разрешено зареждането на данни с размер над 4 ГБ, а при отговор е предоставена възможност за задаване на HTTP статус кодове.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster