История версий Angie#
2025#
Angie 1.8.2#
Дата выпуска: 13.02.2025. Недостаточная проверка в обработке виртуальных серверов при использовании SNI
в TLSv1.3 позволяла повторно использовать SSL-сессию в контексте другого
виртуального сервера, обходя проверку клиентских SSL-сертификатов
(CVE-2025-23419);
исправление портировано из nginx 1.27.4. Запросы к API для получения значений статистики из отдельной зоны, которая
была задана через переменные, могли приводить к зацикливанию рабочего
процесса. HTTP/3-запросы не учитывались в зонах статистики; проблема появилась в 1.8.0. TLS-согласования по протоколу QUIC не учитывались в статистике по SSL. Использование доменных имен, начинающихся с точки, в директиве
server_name, могло привести к ошибке обновления сертификата по
протоколу ACME. Добавлены динамические модули:Безопасность#
Исправления#
Пакеты#
2024#
Angie 1.8.1#
Дата выпуска: 28.12.2024. Использование директивы status_zone в блоке Ошибки декодирования потока HTTP/3 могли приводить к падению рабочего процесса
при закрытии QUIC-соединения; исправление портировано из nginx 1.27.4. Отправка пакетов с согласованием версии протокола QUIC могла привести к
бесконечному циклу обмена пакетами; исправление портировано из nginx 1.27.4. Использование DNS-валидации без хуков в ACME-модуле на
некоторых конфигурациях могло привести к падению рабочего процесса. Обновлены: angie-module-auth-jwt — до версии 0.9.0 23.01.2025 Обновлены: angie-console-light — до версии 1.6.0 27.01.2025 Добавлены динамические модули: Обновлены: angie-console-light — до версии 1.6.1 angie-module-auth-spnego — до версии v1.1.2 angie-module-headers-more — до версии v0.38 angie-module-lua — до версии 0.10.28 angie-module-njs — до версии 0.8.9 angie-module-vts — до версии v0.2.3 angie-module-wasm — до версии v0.2-beta2Исправления#
server
HTTP-модуля
приводило к избыточному логированию пустых запросов в access_log во
время TLS-согласований; проблема появилась в 1.8.0.Пакеты#
Angie 1.8.0#
Дата выпуска: 19.12.2024. Поддержка валидации Система внешних вызовов в модуле ACME, настраиваемая с помощью директивы
acme_hook, которая позволяет обеспечить валидацию доменных имен
посредством внешнего обработчика для интеграции с различными сервисами и
провайдерами DNS-хостинга. ACME-модуль выводит в лог дополнительную информацию: точная причина обновления
сертификата, полный список доменов, идентификатор аккаунта пользователя,
длительные периоды неактивности (например, во время опросов), какой домен
выполняет валидацию. Такая информация позволяет легче диагностировать проблемы
на этапе перевыпуска сертификатов, а также прописывать DNS-запись CAA. Параметр Поддержка переменных в директиве status_zone в модулях HTTP и stream
позволяет динамически распределять статистику по нескольким зонам в рамках
одного блока Совместимость HTTP-модуля сжатия GZip с версиями библиотеки Директива max_headers, ограничивающая максимальное количество полей
заголовка в HTTP-запросе для лучшей защиты от DoS-атак. Спасибо Максиму Дунину
(freenginx) и Максиму Евменкину. Директивы http3_max_table_capacity и
proxy_http3_max_table_capacity для настройки ограничения на размер
динамической таблицы сжатия заголовка в HTTP/3. Поддержка кросс-компиляции — система сборки теперь может использовать
скрипт-обертку для запуска автотестов, что позволяет подготовить сборку без
запуска тестовых программ непосредственно на целевой платформе. Вся функциональность nginx 1.27.3. HTTP/3-клиенты могли отключаться по таймауту при использовании Проксирование по HTTP/3 с использованием переменных в директиве
proxy_pass и без указания блока Кэширование HTTP/3-ответов при использовании динамической таблицы сжатия
заголовка могло привести к падению рабочего процесса. Некоторые SSL-рукопожатия могли не учитываться в счетчиках статистики для
stream-модуля. Настройки HTTP/3-проксирования, указанные на уровне При проксировании по протоколу HTTP/3 с включенной поддержкой NTLS директива
proxy_ssl_certificate не работала. При плавном завершении старых рабочих процессов keepalive-соединения теперь
закрываются только после истечения таймаута, заданного директивой
lingering_timeout. Такое поведение позволяет предотвратить возможные
ошибки на клиенте при получении ответа в этот момент. Спасибо Максиму Дунину
(freenginx). Отключено кэширование значений переменных stream-модуля
$ssl_server_name, $ssl_server_cert_type,
$ssl_preread_protocol и $ssl_preread_server_name, что
позволит получить актуальные значения при использовании виртуальных серверов. Добавлены динамические модули: Обновлены: angie-module-auth-jwt — до версии 0.8.0 angie-module-jwt — до версии 3.4.2 angie-module-njs — до версии 0.8.8 angie-module-opentracing — до версии 0.38.0 angie-module-wasm — до версии 0.1-beta5Добавления#
DNS-01
посредством ответа на DNS-запрос от
ACME-сервера, что позволяет автоматически запрашивать сертификаты любых типов,
в том числе wildcard.account_key
в директиве acme_client, позволяющий
переиспользовать существующий ключ аккаунта ACME-сервера, а не генерировать
новый автоматически.location
или server
. Это, в частности, пригодится
для случая, когда один блок server
обрабатывает несколько виртуальных
хостов.zlib-ng
2.2.0 и выше, которые ранее могли приводить к появлению в логе ошибок вида
[alert] gzip filter failed to use preallocated memory
.Исправления#
0-RTT
.
Проблема была унаследована из nginx в версии 1.7.0.upstream
могло приводить к
падению рабочего процесса.http
или
server
, могли игнорироваться.Изменения#
Пакеты#
Angie 1.7.0#
Дата выпуска: 19.09.2024. Принудительное закрытие соединений к проксируемому серверу при удалении его из
группы, настраиваемое с помощью директив proxy_connection_drop,
grpc_connection_drop, fastcgi_connection_drop,
scgi_connection_drop и uwsgi_connection_drop. Счетчики отдельных типов отправленных DNS-запросов в API
статистики резолвера, собираемой параметром Переменная $ssl_server_cert_type, содержащая тип выбранного
сертификата при приеме TLS-соединения. Отключение создания PID-файла с помощью параметра Создание PID-файла теперь выполняется атомарно через
промежуточный временный файл, что исключает момент, когда файл уже
появился в директории, но еще пуст, и позволяет внешним программам
проще и надежнее с ним работать. Теперь при переконфигурации не делается попытка пересоздать PID-файл, если имя
в директиве pid изменилось, но указывает на тот же файл через симлинки,
что, в частности, позволяет избежать проблем в системах во время миграции с
Ошибки записи в syslog теперь логгируются не чаще
одного раза в секунду, что помогает предотвратить засорение логов подобными
сообщениями в случаях перегрузки или сбоя syslog-сервера. Спасибо Максиму
Дунину (freenginx). В почтовом прокси-сервере ограничено максимальное количество команд в процессе
аутентификации, задаваемое директивой max_commands, для улучшения
защиты против DoS-атак. Спасибо Максиму Дунину (freenginx). Опция --feature-cache скрипта ./configure для
кэширования результатов его работы с целью оптимизации массовой сборки модулей
или кросс-компиляции. Вся функциональность nginx 1.27.1. При запуске под systemd могли возникать ошибки Обновлены текстовые описания кодов HTTP-ответов в соответствии с RFC 9110.
Спасибо Максиму Дунину (freenginx) и Michiel W. Beijen. Теперь перед HTTP-запросом допускается не более одной пустой строки для
улучшения защиты против DoS-атак. Спасибо Максиму Дунину (freenginx). Запрещены имена полей заголовка HTTP/1.x без двоеточия на конце; такие
некорректные заголовки от клиента или проксируемого сервера теперь будут
приводить к возврату ошибки. Спасибо Максиму Дунину (freenginx) и Максиму
Евменкину. При чтении тела запроса с использованием HTTP/1.1 "chunked transfer encoding"
суммарный размер игнорируемых "chunk extensions" и полей "trailer header"
теперь ограничен директивой client_max_body_size для улучшения защиты
против DoS-атак. Спасибо Максиму Дунину (freenginx) и Bartek Nowotarski. MIME-тип в файле конфигурации Обновлены: angie-module-opentracing — до версии 0.36.0 angie-module-lua — до версии 0.10.27 24.10.2024 Пакеты для операционной системы SberLinux. 29.11.2024 Добавлена поддержка WASM с использованием следующих пакетов:Добавления#
status_zone
директивы
resolver.off
в директиве
pid, что может быть полезным для неизменяемых образов и при
непосредственном управлении менеджером процессов. Спасибо Максиму Дунину
(freenginx)./var/run/angie.pid
на /run/angie.pid
. Спасибо Максиму Дунину
(freenginx).Исправления#
PID file ... not
readable (yet?) after start
и Failed to parse PID from file...
.
Спасибо Максиму Дунину (freenginx).Изменения#
mime.types
для расширения :bmp: изменен
на image/bmp
, для расширения rar
u2014 на
application/vnd.rar
, а для расширений deb
и udeb
теперь указан application/vnd.debian.binary-package
. Спасибо Юрию
Изоркину.Пакеты#
Angie 1.6.2#
Дата выпуска: 16.08.2024. Обработка специально созданного MP4-файла модулем
ngx_http_mp4_module
могла приводить к падению рабочего процесса
(CVE-2024-7347);
исправление портировано из nginx 1.27.1.Безопасность#
Angie 1.6.1#
Дата выпуска: 08.08.2024. Счетчик При использовании виртуальных серверов или директивы pass
в модуле stream
соединения могли учитываться некорректно в API статистики. На конфигурациях с 5 ACME-клиентами и более могли
происходить падения рабочих процессов; проблема появилась в 1.6.0. Обработка закэшированных ответов с заголовком
Обновлены: angie-console-light — до версии 1.4.0 angie-module-opentracing — до версии 0.35.3 angie-module-zstd — до ревизии Добавления#
passed
в зоне
API статистики, задаваемой
директивой status_zone модуля stream,
для подсчета соединений, переданных на обработку в другие слушающие сокеты
при помощи директив pass.Исправления#
X-Accel-Redirect
могла приводить к падению рабочего процесса.
Спасибо Максиму Дунину (freenginx) и Иржи Сетничке.Пакеты#
f4ba115
Angie 1.6.0#
Дата выпуска: 28.06.2024. Директива sticky и сопутствующие настройки в блоке
upstream stream-модуля,
позволяющие задать режим привязки сессий,
при котором все соединения в рамках сессии
будут направляться на один и тот же сервер. Извлечение значений Cookie из RDP-соединений с помощью
директивы rdp_preread stream-модуля
в переменные $rdp_cookie и
$rdp_cookie_NAME,
что позволяет логировать и привязывать RDP-сеансы клиентов
к одним и тем же серверам при балансировке нагрузки. Возможность указать несколько директив acme
в одном блоке server,
что позволяет настраивать получение сертификатов сразу двух типов
в рамках данного виртуального сервера. Ключи командной строки Вся функциональность nginx 1.27.0,
включая поддержку виртуальных серверов в модуле stream
и директиву Запрос сертификата по протоколу ACME мог завершаться ошибкой
в некоторых конфигурациях с сообщением в логе вида
Запрос сертификата с большим количеством доменных имен по протоколу ACME
мог завершаться ошибкой с сообщением в логе вида
ACME-клиенты в конфигурациях с несколькими директивами
error_log
могли выводить сообщения в несоответствующие логи. Обновлены: angie-module-auth-jwt — до версии 0.7.0 angie-module-auth-ldap — до ревизии angie-module-jwt — до версии 3.4.1 angie-module-keyval — до версии 0.3.0 angie-module-lua:
angie-module-njs — до версии 0.8.5Добавления#
-m
и -M
для отображения списка встроенных и загруженных модулей.pass
,
позволяющую передавать принятые соединения на обработку в другие слушающие сокеты,
в том числе модулей HTTP и Mail.Исправления#
[alert] getsockname() failed (9: Bad file descriptor)
.[error] JSON parser error
.Пакеты#
241200e
stream_lua_module
— до ревизии bea8a0c
Angie 1.5.2#
Дата выпуска: 03.06.2024. При использовании HTTP/3 обработка специально созданной
QUIC-сессии могла приводить к падению рабочего процесса, отправке
клиенту содержимого памяти рабочего процесса на системах с MTU больше
4096 байт и иметь другие последствия
(CVE-2024-32760,
CVE-2024-31079,
CVE-2024-35200,
CVE-2024-34161);
исправление портировано из nginx 1.26.1. Обновлены: angie-module-opentracing — до версии 0.35.2Безопасность#
Пакеты#
Angie 1.5.1#
Дата выпуска: 16.05.2024. Механизм При запросе сертификата по протоколу ACME могла
произойти ошибка сегментации в рабочем процессе. Механизм slow_start не срабатывал при проксировании
TCP-соединений в модуле stream. Запросы HTTP/3 могли завершаться с ошибкой, если они
были присланы как TLS 1.3 early data; проблема появилась в 1.4.0. HTTP/3-соединение могло закрываться преждевременно при
использовании 0-RTT в QUIC. При чтении тела запроса из быстрого соединения было
возможно чтение в течение долгого времени. Спасибо Максиму Дунину
(freenginx). Теперь ACME-клиенты не игнорируют ранее сохраненные
сертификаты, если они просрочены или выпущены для отличающегося
списка доменных имен, а используют их, пока идет обновление. 27.05.2024 Пакеты для операционной системы Alpine 3.20.Исправления#
proxy_next_upstream
работал некорректно при
использовании опции resolve директивы server
в блоке upstream
,
если количество полученных IP-адресов отличалось от числа заданных
серверов.Изменения#
Пакеты#
Angie 1.5.0#
Дата выпуска: 27.03.2024. Начальная поддержка автоматического получения и обновления сертификатов по
протоколу ACME, конфигурируемая с
помощью директив acme_client и acme, а также переменных вида
$acme_cert_= и $acme_cert_key_=. Настройка автоматического перенаправления для добавления
слеша в конец URI запроса с помощью директивы auto_redirect. Вывод содержащих даты метрик в формате временных меток Unix
вместо ISO 8601 для использования в Prometheus, а также в JSON API при запросе
с аргументом Новый статус Теперь ключ Вся функциональность nginx 1.25.4. Если был задействован механизм переиспользования SSL-сессий
(proxy_ssl_session_reuse), то при динамическом обновлении списка
проксируемых серверов могла происходить утечка из зоны разделяемой памяти
( Пакеты для операционных систем FreeBSD 13 (arm64),
RED OS 8 (x86-64). Добавлены динамические модули: Обновлены: angie-module-opentracing — до версии 0.34.0 28.03.2024 Обновлены: angie-console-light — до версии 1.3.0 16.04.2024 Добавлены динамические модули: Обновлены: angie-module-njs — до версии 0.8.4 25.04.2024 Добавлены динамические модули: angie-module-vts: включает
module-vts,
module-sts,
module-stream-stsДобавления#
?date-epoch
.recovering
у проксируемых серверов в API статистики, означающий, что сервер медленно восстанавливается после сбоя
согласно опции slow_start
.-V
показывает также релевантную версию nginx, что
полезно для совместимости со сторонними утилитами, в частности
certbot. Спасибо AdvTechnoKing.Исправления#
zone
), настроенной для соответствующего блока upstream
.Пакеты#
Angie 1.4.1#
Дата выпуска: 15.02.2024. При использовании HTTP/3 в рабочем процессе во время обработки специально
созданной QUIC-сессии могла произойти ошибка сегментации
(CVE-2024-24989);
при этом Angie, начиная еще с версии 1.4.0, не подвержен уязвимости
CVE-2024-24990. Добавлены динамические модули: Обновлены: angie-module-njs — до версии 0.8.3 angie-module-vod — до версии 1.33Безопасность#
Пакеты#
2023#
Angie 1.4.0#
Дата выпуска: 12.12.2023. Поддержка HTTP/3-соединений с upstream-серверами в
прокси-модуле HTTP,
допускающая использование клиентами произвольных версий HTTP.
Конфигурация осуществляется с помощью директивы proxy_http_version
и набора директив Механизм плавного ввода проксируемого сервера в работу после сбоя
с помощью опции Директива mqtt_preread модуля stream,
позволяющая помещать имя пользователя и идентификатор клиента
из пакета CONNECT протокола MQTT в переменные
$mqtt_preread_username и $mqtt_preread_clientid. Ограничение скорости отдачи MP4-файлов клиенту
пропорционально битрейту
с помощью директив mp4_limit_rate и mp4_limit_rate_after,
снижающее нагрузку на полосу пропускания. Вся функциональность nginx 1.25.3. Если проксируемый сервер был единственным в группе, то
он мог некорректно учитываться как Пакеты для операционной системы Alpine 3.19. Добавлены динамические модули: Обновлены: angie-module-auth-jwt — до версии 0.4.0 angie-module-headers-more — до версии 0.36 angie-module-ndk — до версии 0.3.3 angie-module-opentracing — до версии 0.33.0 18.12.2023 Обновлены: angie-console-light — до версии 1.2.0 25.12.2023 Обновлены: angie-console-light — до версии 1.2.1 22.01.2024 Добавлены динамические модули: Обновлены: angie-module-auth-jwt — до версии 0.6.0 angie-module-headers-more — до версии 0.37 angie-module-lua:
Добавления#
proxy_quic_
и proxy_http3_
.slow_start
директивы server
в блоке upstream.Исправления#
unavailable
в
API статистики
даже после восстановления работоспособности.Пакеты#
http_lua_module
— до версии 0.10.26;
stream_lua_module
— до версии 0.0.14
Angie 1.3.2#
Дата выпуска: 23.11.2023. Были возможны некорректные значения метрик в формате Prometheus, в значениях которых использовались отличные от Некоторые попытки соединения с проксируемыми серверами могли не учитываться
соответствующим образом в API статистики, если ошибка
происходила моментально; проблема появилась в 1.3.0. 04.12.2023 Добавлены динамические модули: 07.12.2023 Обновлены: angie-console-light — до версии 1.1.1Исправления#
$p8s_value
переменные; на практике проблема могла наблюдаться с
angie_http_upstreams_peers_state
и angie_stream_upstreams_peers_state
из стандартного шаблона prometheus_all.conf
.Пакеты#
Angie 1.3.1#
Дата выпуска: 18.10.2023. Добавлены дополнительные ограничения при обработке потоков HTTP/2, чтобы
лучше противостоять DoS-атаке "HTTP/2 Rapid Reset" (CVE-2023-44487). 26.10.2023 Добавлены динамические модули: 13.11.2023 Добавлены динамические модули: Обновлены: angie-console-light — до версии 1.1.0 angie-module-headers-more — до версии 0.35 angie-module-njs — до версии 0.8.2 angie-module-vod — до версии 1.32Безопасность#
Пакеты#
Angie 1.3.0#
Дата выпуска: 19.09.2023. Возможность указывать в директиве Экспорт различных метрик статистики в формате Prometheus
с гибко настраиваемыми шаблонами при помощи новых директив
prometheus и prometheus_template. Детальная информация и метрики по
группам проксируемых stream-серверов в интерфейсе статистики, предоставляемом
директивой api. Опция resolve директивы Опция service директивы Получение содержимого конфигурационных файлов, с которыми
было запущено текущее поколение рабочих процессов, в интерфейсе,
предоставляемом директивой api при включении директивы
api_config_files. Отображение номера поколения конфигурации в
именах процессов, что позволяет с помощью утилиты Вся функциональность nginx 1.25.2. Сборка завершалась ошибкой при использовании опций
Теперь при загрузке конфигурации OpenSSL используется
appname Обновлены: angie-module-njs — до версии 0.8.1.Добавления#
location
несколько строк для
сопоставления, что позволяет объединить несколько
блоков location
с одинаковыми настройками и, таким образом, упростить
конфигурацию за счет уменьшения дублирования.server
в блоке upstream
модуля stream, позволяющая отслеживать изменения
списка IP-адресов, соответствующего доменному имени, и автоматически
обновлять его без перезагрузки конфигурации.server
в блоке upstream
модуля stream, позволяющая получать списки адресов
из DNS-записей SRV, с базовой поддержкой приоритета.ps
отслеживать успех
перезагрузок конфигурации и количество поколений рабочих процессов с
предыдущими версиями конфигурации.Исправление#
./configure
--without-http_upstream_zone_module
или
--without-stream_upstream_zone_module
; ошибка появилась в 1.2.0.Изменения#
angie
.Пакеты#
Angie 1.2.0#
Дата выпуска: 30.05.2023. Директива sticky и сопутствующие настройки в блоке upstream
HTTP-модуля, позволяющие задать режим привязки сессий,
при котором все запросы в рамках сессии будут направляться на один и тот же
сервер. Переменная $upstream_sticky_status, принимающая значения Поддержка NTLS в HTTP модулях
при использовании TLS библиотеки TongSuo, включаемая опцией сборки
В HTTP прокси-модулях
теперь можно настраивать несколько сертификатов разного типа (RSA и ECDSA) и
соответствующих им ключей, используя директивы proxy_ssl_certificate и
proxy_ssl_certificate_key. Вывод версии и сборки в отображаемом имени Возможность сжатия модулем gzip ответов со статусом "207
Multi-Status". Спасибо
DBotThePony. Вся функциональность nginx 1.25.0,
включая поддержку HTTP/3. Пакеты для операционной системы Ubuntu 23.04 "Lunar Lobster". Пакеты динамических модулей: Пакет 13.06.2023 Пакеты для операционных систем Debian 12 "Bookworm" и
AlmaLinux. 12.07.2023 Добавлены динамические модули: Обновлены: angie-module-njs — до версии 0.8.0. 28.07.2023 Добавлены динамические модули: 18.08.2023 Добавлены динамические модули:Добавления#
NEW
,
HIT
или MISS
в зависимости от успеха направления запроса на
релевантный проксируемый сервер с включенной привязкой сессий.‑‑with‑ntls
и настраиваемая с помощью соответствующих директив
ssl_ntls и proxy_ssl_ntls.master
процесса, что позволяет
с помощью утилиты ps
получить эту информацию о работающем экземпляре
сервера.Пакеты#
angie-module-lua
включает
http_lua_module
и
stream_lua_module.
Angie 1.1.0#
Дата выпуска: 24.01.2023. Опция resolve директивы server в блоке
upstream HTTP-модуля, позволяющая отслеживать
изменения списка IP-адресов, соответствующего доменному имени, и
автоматически обновлять его без перезагрузки конфигурации. Опция service директивы server в блоке
upstream HTTP-модуля, позволяющая получать
списки адресов из DNS SRV записей, с базовой поддержкой приоритета. Детальная информация и метрики по группам проксируемых
HTTP-серверов в интерфейсе статистики, предоставляемом директивой
api. autoindex выводит листинги директорий в естественном порядке. Вся функциональность nginx 1.23.3. Сборка завершалась ошибкой из-за ложного предупреждения компилятора при
использовании GCC 9 и старее с оптимизацией -O2 и выше. 15.03.2023 Пакеты динамических модулей: 07.04.2023 Пакеты для операционной системы ALT Linux. 11.05.2023 Пакеты для операционной системы FreeBSD. Пакеты динамических модулей: 26.05.2023 Пакеты для операционной системы Astra Linux Special Edition.Добавления#
Исправление#
Пакеты#
2022#
Angie 1.0.0#
Дата выпуска: 27.10.2022. Директива api, реализующая HTTP RESTful интерфейс для получения в
формате JSON базовой информации о веб-сервере, а также статистики по клиентским соединениям, зонам разделяемой памяти, DNS-запросам,
HTTP-запросам, кэшу HTTP-ответов, сессиям модуля stream
и зонам модулей limit_conn/limit_req. Директива status_zone в модуле http
для указания зоны сбора статистики по запросам в server и
location контекстах. Директива status_zone в модуле stream для указания зоны сбора статистики по TCP/UDP сессиям. Параметр status_zone директивы resolver для
указания зоны сбора статистики по DNS-запросам. Переменная $angie_version, содержащая версию Angie. Вся функциональность nginx 1.23.2.Добавления#