Как стать автором
Обновить

Вышел nginx 1.28

Время на прочтение4 мин
Количество просмотров1.1K

23 апреля 2025 года состоялся выпуск высокопроизводительного HTTP‑сервера и многопротокольного прокси‑сервера nginx 1.28.0. Исходный код проекта nginx написан на языке C и распространяется под лицензией BSD. Проект nginx 1.27.5 вышел в середине апреля.

Стабильный релиз nginx 1.28 получил все изменения, накопленные в основной ветке 1.27.x. В дальнейшем все изменения в стабильной ветке 1.28 будут связаны с устранением серьёзных ошибок и уязвимостей. В скором времени будет сформирована основная ветка nginx 1.29, в которой будет продолжено развитие новых возможностей. Для обычных пользователей, у которых нет задачи обеспечить совместимость со сторонними модулями, рекомендуется использовать основную ветку, на базе которой раз в три месяца формируются выпуски коммерческого продукта Nginx Plus.

В соответствии с мартовским отчётом компании Netcraft, под управлением nginx работает около 245 млн сайтов (год назад 243 млн, два года назад 289 млн). Nginx используется на 17.89% всех активных сайтов (год назад 18.15%, два года назад 18.94%), что соответствует первому месту по популярности в данной категории (доля Apache соответствует 16.03% (год назад 20.09%, два года назад 20.52%), Cloudflare — 17.81% (14.12%, 11.32%), Google — 9.89% (10.41%, 9.89%).

По информации OpenNET, в nginx 1.28 вошли улучшения и дополнения:

  • для соединений, использующих протокол QUIC, добавлена поддержка алгоритма управления сетевой перегрузкой CUBIC (RFC 9438), работа которого сводится к постепенному увеличению размера окна перегрузки до появления потери пакетов, после чего размер окна откатывается на значение до начала потери. В проведённых тестах использование CUBIC позволило сократить время передачи файла размером 500МБ на 24% при задержках 40ms и BDP 750K (Bandwidth Delay Product) и на 73% при задержках 100ms и BDP 9M;

  • в модуль stream добавлена поддержка проверки отзыва сертификатов клиентов с использованием протокола OCSP (Online Certificate Status Protocol);

  • в модуле stream реализована поддержка техники проверки отзыва сертификатов OCSP Stapling, суть которой в том, что при согласовании TLS‑соединения заверенный удостоверяющим центром ответ OCSP передаётся сервером, обслуживающим сайт, без необходимости прямого обращения к удостоверяющему центру);

  • при запуске и обновлении конфигурации реализовано кэширование SSL‑сертификатов, ключей и CRL (Certificate Revocation List);

  • добавлены возможности для снижения потребления ресурсов и уменьшения нагрузки на CPU при использовании TLS в конфигурациях с большим числом блоков server и location. Добавленные изменения позволяют вместо создания для каждого блока конфигурации отдельного контекста SSL (SSL_CTX в OpenSSL), использовать уже имеющийся контекст SSL из родительского блока;

  • в директиве «ssl_client_certificate» обеспечена поддержка сертификатов с дополнительной информацией;

  • для проверки клиентских SSL‑сертификатов директива «ssl_client_certificate» теперь не является обязательной;

  • в модуль ngx_mail_proxy_module добавлена поддержка специфичного для SmarterMail режима IMAP LOGIN с нетегированным ответом CAPABILITY;

  • в модуль ngx_http_proxy_module добавлена директива «proxy_pass_trailers», разрешающая передачу полей заголовков в конце ответа от проксируемого сервера к клиенту;

  • в директиву «server», используемую в блоке «upstream», добавлена поддержка параметра «resolve», включающего отслеживание изменения IP‑адреса для используемого доменного имени и автоматическое обновление конфигурации блока «upstream» без необходимости перезапуска nginx в случае изменения адреса;

  • добавлена возможность использования переменных в директивах «proxy_limit_rate», «fastcgi_limit_rate», «scgi_limit_rate» и «uwsgi_limit_rate»;

  • в директивах «proxy_bind», «fastcgi_bind», «grpc_bind», «memcached_bind», «scgi_bind» и «uwsgi_bind», а также в качестве адреса клиента в модуле ngx_http_realip_module разрешено указание IPv6-адресов в квадратных скобках без номера порта;

  • добавлена директива «keepalive_min_timeout», определяющая таймаут, в течение которого nginx не будет закрывать keep‑alive соединение с клиентом;

  • по умолчанию отключены протоколы TLSv1 и TLSv1.1;

  • решены проблемы с долгой загрузкой файлов конфигурации из‑за повторного разбора одного и того же набора TLS‑сертификатов, ключей и списков удостоверяющих центров. Ускорена перезагрузка конфигурации за счёт повторного использования не изменившихся TLS‑объектов, таких как сертификаты, ключи и CRL. Для отключения наследования объектов при обновлении конфигурации добавлена директива «ssl_object_cache_inheritable»;

  • добавлен кэш для сертификатов и ключей, загруженных с использованием переменных в директивах (например, «ssl_certificate /etc/ssl/$ssl_server_name.crt»). Для управления кэшем добавлены директивы «ssl_certificate_cache», «proxy_ssl_certificate_cache», «grpc_ssl_certificate_cache» и «uwsgi_ssl_certificate_cache». Через указанные директивы можно настроить максимальный размер кэша, время действия записей и время очистки невостребованных записей. Например: «ssl_certificate_cache max=1000 inactive=20s valid=1m;»;

  • снижено потребление памяти при обработке долгоживущих запросов в конфигурациях, в которых используются директивы «gzip», «gunzip», «ssi», «sub_filter» или «grpc_pass»;

  • максимальный размер кэшируемых в разделяемой памяти сеансов SSL увеличен до 8192;

  • налажена сборка с C‑библиотекой Musl;

  • проведена работа по оптимизации производительности и устранению ошибок в реализации HTTP/3.

Теги:
Хабы:
+2
Комментарии0

Другие новости

Истории

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область