После года работы над проектом, команда разработчиков выпустила новую стабильную версию популярного HTTP-сервера и прокси-сервера Nginx, обозначенную номером 1.26.0. Эта версия включает в себя все обновления, которые были сделаны в предыдущей разрабатываемой ветке 1.25.x. Теперь, в рамках стабильной ветки 1.26, основное внимание будет уделено исправлению критических ошибок и уязвимостей. В ближайшее время начнётся работа над следующей основной веткой 1.27, которая будет фокусироваться на разработке новых функций. Рекомендуется, что обычные пользователи, не нуждающиеся в поддержке сторонних модулей, используют основную ветку, так как на её базе каждые три месяца выпускается коммерческая версия Nginx Plus.
Согласно мартовскому отчёту компании Netcraft, Nginx управляет примерно 243 миллионами сайтов, что меньше по сравнению с прошлым годом. Также Nginx лидирует на рынке, если учитывать все сайты в целом, опережая Apache, Cloudflare и OpenResty. Среди миллиона самых посещаемых сайтов в мире, Nginx занимает значительную долю, но наблюдается небольшое снижение популярности по сравнению с предыдущими годами.
Основные улучшения, внесённые в последнюю версию:
- Добавлена экспериментальная поддержка протокола HTTP/3 через модуль ngx_http_v3, который использует протокол QUIC для более быстрой и надёжной передачи данных. QUIC был разработан Google как альтернатива TCP+TLS.
- Введена новая директива «http2» для более гибкой настройки протокола HTTP/2, а старый параметр в директиве «listen» объявлен устаревшим.
- Усилены меры защиты от DoS-атак на HTTP/2, включая ограничения на количество запросов и новые меры против флуда запросами.
- В модуль stream добавлена возможность конфигурирования виртуальных серверов с помощью директивы server_name.
Пример конфигурации с использованием server_name:
server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
- Появился новый модуль ngx_stream_pass_module, который позволяет направлять соединения напрямую в другие слушающие сокеты.
Пример использования ngx_stream_pass_module:
stream { server { listen 12345 ssl; ssl_certificate domain.crt; ssl_certificate_key domain.key; pass 127.0.0.1:8000; } }
- В директиве listen модуля stream добавлена поддержка новых параметров для улучшения управления соединениями.
- Улучшены механизмы работы с буферами и повышена производительность при использовании большого числа директив «location».
- Удалена поддержка Server push в HTTP/2 и прекращена поддержка устаревшей директивы «ssl».
Также стоит отметить, что две недели назад был выпущен стабильный релиз FreeNginx 1.26.0, который является форком Nginx. Этот проект ведёт Максим Дунин, один из ключевых разработчиков Nginx, и позиционируется как некоммерческая альтернатива без корпоративного вмешательства.
Дополнительные ресурсы:
- Официальный сайт Nginx: Посетите сайт
- Netcraft отчёт: Читайте отчёт
- Информация о протоколе HTTP/3: Узнайте больше о HTTP/3
- Информация о QUIC: Узнайте больше о QUIC
- Статистика использования веб-серверов W3Techs: Посмотрите статистику