Нові версії nginx 1.25.5 та форка FreeNginx 1.26.0

Сформовано випуск основної гілки nginx 1.25.5, в рамках якої продовжується розвиток нових можливостей. У стабільній гілці 1.24.x, що паралельно підтримується, вносяться лише зміни, пов'язані з усуненням серйозних помилок і вразливостей. Надалі на базі основної гілки 1.25.x буде сформовано стабільну гілку 1.26. Код проекту написаний мовою Сі та поширюється під ліцензією BSD.

Серед змін:

  • У модуль stream додано підтримку віртуальних серверів, конфігурація яких визначається в блоці «server {…}» за допомогою директиви server_name. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
  • Додано новий модуль ngx_stream_pass_module, призначений для прокидання прийнятих з'єднань безпосередньо в будь-який сокет, що слухає, пов'язаний з такими модулями, як http, stream і mail. stream { server { listen 12345 ssl; ssl_certificate domain.crt; ssl_certificate_key domain.key; pass 127.0.0.1: 8000; } }
  • У директиві listen модуля stream реалізована підтримка параметрів deferred (включає відкладений accept), accept_filter (фільтр вхідних з'єднань, що застосовується перед викликом функції accept) і setfib (завдання таблиці маршрутизації).
  • Для деяких архітектур реалізовано підтримку визначення розміру блоку (cache line), що використовується для передачі даних між кешем CPU і пам'яттю.
  • На системах Apple Silicon додано підтримку пакетного менеджера Homebrew.
  • Вирішено проблеми з крос-компіляцією для Windows.
  • Усунена помилка, що призводила до закриття з'єднань під час використання режиму 0-RTT у протоколі QUIC.

Додатково можна відзначити публікацію стабільної версії проекту FreeNginx 1.26.0, який розвиває форк Nginx. Розробку форка веде Максим Дунін, один із ключових розробників Nginx. FreeNginx позиціонується як некомерційний проект, що забезпечує розробку кодової бази Nginx без корпоративного втручання. Випуск 1.26.0 відзначений як стабільний реліз, що увібрав зміни та виправлення з випусків mainline-гілки Nginx 1.25. Серед іншого до складу FreeNginx 1.26.0 увійшли експериментальна підтримка протоколу HTTP/3, поліпшення протидії DoS-атакам і виправлення, пов'язані з асинхронною обробкою вводу/виводу.

Одночасно відбувся випуск njs 0.8.4, інтерпретатора мови JavaScript для веб-сервера nginx. Інтерпретатор njs реалізує стандарти ECMAScript і дозволяє розширювати можливості nginx обробки запитів за допомогою скриптів у конфігурації. Скрипти можуть використовуватися у файлі конфігурації для визначення розширеної логіки обробки запитів, формування конфігурації, динамічної генерації відповіді, модифікації запиту/відповіді або швидкого створення заглушок із вирішенням проблем у веб-додатках. У новій версії: в CLI додано підтримку JavaScript-движка QuickJS; додано можливість виставлення заголовка Server; реалізовано перевірку на дублювання змінних, виставлених через js_set.

Джерело: opennet.ru

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