Випуск nginx 1.17.1 та njs 0.3.3

доступний випуск основної гілки nginx 1.17.1, в рамках якої продовжується розвиток нових можливостей (у паралельно підтримуваній стабільній гілці 1.16 вносяться лише зміни, пов'язані з усуненням серйозних помилок та вразливостей.

Основні зміни:

  • Додано директиву limit_req_dry_run, яка активує режим пробного запуску, в якому не застосовуються обмеження на інтенсивність обробки запитів (без rate limit), але продовжується облік числа запитів, що виходить за ліміти, в розділяється пам'яті;
  • При використанні в блоці налаштувань «upstream» директиви «мішанина» для організації балансування навантаження з прив'язкою клієнта до сервера, у разі вказівки порожнього значення ключа активується режим рівномірного балансування (round-robin);
  • Усунено крах робочого процесу при використанні кешу у поєднанні з директивою «image_filter» та перенаправленням обробника коду помилки 415 з використанням директиви «error_page»;
  • Усунено крах робочого процесу, що виявляється при використанні вбудованого інтерпретатора Perl.

Додатково можна відзначити випуск njs 0.3.3, інтерпретатора мови JavaScript для веб-сервера nginx. Інтерпретатор njs реалізує стандарти ECMAScript і дозволяє розширювати можливості nginx обробки запитів за допомогою скриптів у конфігурації. Скрипти можуть використовуватися у файлі конфігурації для визначення розширеної логіки обробки запитів, формування конфігурації, динамічної генерації відповіді, модифікації запиту/відповіді або швидкого створення заглушок із вирішенням проблем у веб-додатках.

У новому випуску njs усунуто проблеми, виявлені під час fuzzing-тестування. Реалізовано глобальну змінну «process» з параметрами та змінними оточення поточного процесу (process.pid, process.env.HOME тощо). Забезпечено можливість запису у всі вбудовані властивості та метод. Додано реалізацію Array.prototype.fill(). Реалізовано підтримку запропонованого в ECMAScript 5 синтаксису геттер и сетер для прив'язування властивості об'єкта до функції, наприклад:

var o = {a:2};
Object.defineProperty(o, 'b', {get:function(){return 2*this.a}});

Джерело: opennet.ru

Додати коментар або відгук