nginx 1.31.4 вышел 19 августа 2026 года в mainline-ветке. Релиз добавляет передачу PROXY Protocol v2 к бэкендам в модулях stream и mail, унифицирует формирование Host и :authority для проксируемых запросов и исправляет сбои в HTTP/2, HTTP/3, gRPC и ряде модулей.

PROXY Protocol v2 появился в stream и mail
Главное функциональное изменение nginx 1.31.4 — поддержка бинарной версии PROXY Protocol v2 при подключении к проксируемому серверу. В официальном changelog релиз датирован 19 августа 2026 года, а на странице загрузок версия 1.31.4 указана как актуальная mainline-сборка.
Директива proxy_protocol в ngx_stream_proxy_module и ngx_mail_proxy_module теперь принимает три значения:
proxy_protocol off;
proxy_protocol on;
proxy_protocol v2;Логика при этом остается обратно совместимой:
off— PROXY Protocol не отправляется;on— используется PROXY Protocol v1 в текстовом формате;v2— используется PROXY Protocol v2 в бинарном формате.
Например, для TCP-прокси в stream конфигурация может выглядеть так:
stream {
server {
listen 443;
proxy_pass 10.0.0.10:8443;
proxy_protocol v2;
}
}PROXY Protocol применяется между прокси и следующим узлом цепочки и позволяет передать сведения об исходном соединении, в том числе адрес клиента, даже если непосредственное TCP-соединение с бэкендом устанавливает nginx. Поддержка v2 особенно полезна в инфраструктуре, где балансировщики, L4-сервисы или почтовые бэкенды уже работают с бинарным форматом протокола.
Автоматического перехода с v1 на v2 нет. Если существующая конфигурация содержит proxy_protocol on;, после обновления она продолжит использовать PROXY Protocol v1. Для включения новой версии нужно явно указать proxy_protocol v2;, а принимающая сторона должна поддерживать этот формат.
Host и :authority к HTTP/2 и gRPC-бэкендам
nginx 1.31.4 меняет формирование информации об имени узла при отправке запросов к upstream-серверам. Для HTTP/2 и gRPC запросы к бэкенду теперь всегда отправляются с псевдозаголовком :authority, а для HTTP/1.1 — с обычным заголовком Host.
Это изменение делает поведение прокси более однозначным относительно используемой версии HTTP:
| Протокол к бэкенду | nginx 1.31.4 |
| HTTP/1.1 | Host |
| HTTP/2 | :authority |
| gRPC | :authority |
Для большинства конфигураций переход должен быть прозрачным. Дополнительная проверка нужна там, где upstream-приложение, промежуточный прокси или собственная логика маршрутизации жестко завязаны на конкретное представление заголовка имени хоста.
После обновления таких систем имеет смысл проверить виртуальный хостинг, маршрутизацию gRPC и правила, которые анализируют Host или HTTP/2-псевдозаголовки.
Исправлен сбой worker-процесса при использовании select
В nginx 1.31.4 устранена ошибка, из-за которой worker-процесс мог завершиться с segmentation fault при использовании метода обработки событий select.
На современных Linux-системах nginx обычно использует более эффективные механизмы вроде epoll, поэтому исправление не затронет большинство типовых серверов напрямую. Оно важнее для платформ и конфигураций, где select выбирается автоматически либо задан явно:
events {
use select;
}Если сервер действительно работает через select, обновление снижает риск аварийного завершения worker-процесса. Проверить собранную конфигурацию и параметры nginx перед перезагрузкой можно стандартной командой:
nginx -tgRPC — неполные ответы теперь считаются ошибочными
Релиз меняет обработку некорректных gRPC-ответов. Если бэкенд объявил ненулевой Content-Length, но фактически вернул неполный ответ, nginx теперь рассматривает такую передачу как malformed response.
Практический эффект заметен прежде всего в инфраструктуре, где nginx проксирует gRPC-сервисы. Некорректно завершившийся upstream-ответ больше не должен восприниматься как нормальная передача только потому, что соединение завершилось без ожидаемого объема данных.
Это упрощает обнаружение проблем на стороне gRPC-бэкенда: несоответствие заявленной и фактической длины ответа становится явной протокольной ошибкой, а не неоднозначным результатом обработки.
Совместимость сторонних модулей после nginx 1.31.3
В nginx 1.31.4 исправлена проблема бинарной совместимости со сторонними модулями, использующими script codes. Ошибка появилась в nginx 1.31.3, поэтому обновление особенно актуально для тех, кто уже перешел на предыдущий mainline-релиз и загружает внешние динамические модули.
Для серверов с нестандартным набором модулей после установки новой версии стоит выполнить как минимум:
nginx -t
nginx -VПервая команда проверяет конфигурацию и загрузку модулей, вторая позволяет сверить версию и параметры сборки. В пакетных инсталляциях также следует убедиться, что сторонние .so-модули собраны или поставляются для используемой сборки nginx.
Исправления HTTP/2, HTTP/3, image_filter и Perl
Помимо отдельных изменений, разработчики указывают серию исправлений в HTTP/2, HTTP/3, ngx_http_image_filter_module и ngx_http_grpc_module. Отдельный баг устранен в ngx_http_perl_module.
Полный changelog не раскрывает каждое исправление в этой группе по пунктам, поэтому при оценке влияния на конкретную инфраструктуру корректнее исходить из используемых модулей и протоколов, а не приписывать релизу неподтвержденные изменения.
Особенно внимательно обновление стоит протестировать администраторам, которые используют:
- HTTP/2 или HTTP/3 на высоконагруженных фронтендах;
- nginx как gRPC-прокси;
ngx_http_image_filter_module;ngx_http_perl_module;- сторонние динамические модули после перехода на 1.31.3.
nginx 1.31.4 не является отдельным security-релизом
В changelog nginx 1.31.4 нет новых записей с пометкой Security. Предыдущая версия 1.31.3, выпущенная 15 июля 2026 года, содержала исправления CVE-2026-42533, CVE-2026-60005 и CVE-2026-56434.
Поэтому смысл обновления зависит от исходной версии. Для уже работающего nginx 1.31.3 релиз 1.31.4 в первую очередь исправляет регрессии и протокольные проблемы. Если же сервер остается на более раннем mainline-релизе, переход на 1.31.4 одновременно включает и исправления безопасности, вошедшие в 1.31.3.
При этом 1.31.4 относится к mainline-ветке. На момент публикации nginx.org отдельно предлагает стабильную ветку 1.30.x, актуальная версия которой — 1.30.4. Пользователям stable-ветки не требуется переходить на mainline только ради номера 1.31.4, если новая функциональность им не нужна.
Резюме
nginx 1.31.4 — технический mainline-релиз с одним заметным новым сетевым механизмом и набором исправлений. Поддержка proxy_protocol v2 расширяет возможности интеграции nginx с L4-балансировщиками и бэкендами, которые ожидают бинарный PROXY Protocol, а изменения HTTP/2, HTTP/3 и gRPC повышают предсказуемость проксирования.
Наиболее высокий приоритет обновления у серверов на nginx 1.31.3 со сторонними модулями, у конфигураций с select, а также у инфраструктуры, активно использующей gRPC, HTTP/2 или HTTP/3. Перед внедрением в production разумно проверить конфигурацию через nginx -t, совместимость динамических модулей и прохождение запросов через критичные upstream-маршруты.
Для пользователей stable-ветки 1.30.x релиз 1.31.4 не требует немедленной миграции. Это обновление прежде всего для тех, кто уже следует mainline-ветке или кому нужна передача PROXY Protocol v2 к upstream-серверам.