История версий Angie#
2024#
Angie 1.8.1#
Дата выпуска: 28.12.2024.
Исправления#
Использование директивы status_zone в блоке
server
HTTP-модуля приводило к избыточному логированию пустых запросов в access_log во время TLS-согласований; проблема появилась в 1.8.0.Ошибки декодирования потока HTTP/3 могли приводить к падению рабочего процесса при закрытии QUIC-соединения; исправление портировано из nginx 1.27.4.
Отправка пакетов с согласованием версии протокола QUIC могла привести к бесконечному циклу обмена пакетами; исправление портировано из nginx 1.27.4.
Использование DNS-валидации без хуков в ACME-модуле на некоторых конфигурациях могло привести к падению рабочего процесса.
Пакеты#
-
Обновлены:
angie-module-auth-jwt — до версии 0.9.0
Angie 1.8.0#
Дата выпуска: 19.12.2024.
Добавления#
Поддержка валидации
DNS-01
посредством ответа на DNS-запрос от ACME-сервера, что позволяет автоматически запрашивать сертификаты любых типов, в том числе wildcard.Система внешних вызовов в модуле ACME, настраиваемая с помощью директивы acme_hook, которая позволяет обеспечить валидацию доменных имен посредством внешнего обработчика для интеграции с различными сервисами и провайдерами DNS-хостинга.
ACME-модуль выводит в лог дополнительную информацию: точная причина обновления сертификата, полный список доменов, идентификатор аккаунта пользователя, длительные периоды неактивности (например, во время опросов), какой домен выполняет валидацию. Такая информация позволяет легче диагностировать проблемы на этапе перевыпуска сертификатов, а также прописывать DNS-запись CAA.
Параметр
account_key
в директиве acme_client, позволяющий переиспользовать существующий ключ аккаунта ACME-сервера, а не генерировать новый автоматически.Поддержка переменных в директиве status_zone в модулях HTTP и stream позволяет динамически распределять статистику по нескольким зонам в рамках одного блока
location
илиserver
. Это, в частности, пригодится для случая, когда один блокserver
обрабатывает несколько виртуальных хостов.Совместимость HTTP-модуля сжатия GZip с версиями библиотеки
zlib-ng
2.2.0 и выше, которые ранее могли приводить к появлению в логе ошибок вида[alert] gzip filter failed to use preallocated memory
.Директива max_headers, ограничивающая максимальное количество полей заголовка в HTTP-запросе для лучшей защиты от DoS-атак. Спасибо Максиму Дунину (freenginx) и Максиму Евменкину.
Директивы http3_max_table_capacity и proxy_http3_max_table_capacity для настройки ограничения на размер динамической таблицы сжатия заголовка в HTTP/3.
Поддержка кросс-компиляции — система сборки теперь может использовать скрипт-обертку для запуска автотестов, что позволяет подготовить сборку без запуска тестовых программ непосредственно на целевой платформе.
Вся функциональность nginx 1.27.3.
Исправления#
HTTP/3-клиенты могли отключаться по таймауту при использовании
0-RTT
. Проблема была унаследована из nginx в версии 1.7.0.Проксирование по HTTP/3 с использованием переменных в директиве proxy_pass и без указания блока
upstream
могло приводить к падению рабочего процесса.Кэширование HTTP/3-ответов при использовании динамической таблицы сжатия заголовка могло привести к падению рабочего процесса.
Некоторые SSL-рукопожатия могли не учитываться в счетчиках статистики для stream-модуля.
Настройки HTTP/3-проксирования, указанные на уровне
http
илиserver
, могли игнорироваться.При проксировании по протоколу 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
Angie 1.7.0#
Дата выпуска: 19.09.2024.
Добавления#
Принудительное закрытие соединений к проксируемому серверу при удалении его из группы, настраиваемое с помощью директив proxy_connection_drop, grpc_connection_drop, fastcgi_connection_drop, scgi_connection_drop и uwsgi_connection_drop.
Счетчики отдельных типов отправленных DNS-запросов в API статистики резолвера, собираемой параметром
status_zone
директивы resolver.Переменная $ssl_server_cert_type, содержащая тип выбранного сертификата при приеме TLS-соединения.
Отключение создания PID-файла с помощью параметра
off
в директиве pid, что может быть полезным для неизменяемых образов и при непосредственном управлении менеджером процессов. Спасибо Максиму Дунину (freenginx).Создание PID-файла теперь выполняется атомарно через промежуточный временный файл, что исключает момент, когда файл уже появился в директории, но еще пуст, и позволяет внешним программам проще и надежнее с ним работать.
Теперь при переконфигурации не делается попытка пересоздать PID-файл, если имя в директиве pid изменилось, но указывает на тот же файл через симлинки, что, в частности, позволяет избежать проблем в системах во время миграции с
/var/run/angie.pid
на/run/angie.pid
. Спасибо Максиму Дунину (freenginx).Ошибки записи в syslog теперь логгируются не чаще одного раза в секунду, что помогает предотвратить засорение логов подобными сообщениями в случаях перегрузки или сбоя syslog-сервера. Спасибо Максиму Дунину (freenginx).
В почтовом прокси-сервере ограничено максимальное количество команд в процессе аутентификации, задаваемое директивой max_commands, для улучшения защиты против DoS-атак. Спасибо Максиму Дунину (freenginx).
Опция --feature-cache скрипта ./configure для кэширования результатов его работы с целью оптимизации массовой сборки модулей или кросс-компиляции.
Вся функциональность nginx 1.27.1.
Исправления#
При запуске под systemd могли возникать ошибки
PID file ... not readable (yet?) after start
иFailed to parse PID from file...
. Спасибо Максиму Дунину (freenginx).
Изменения#
Обновлены текстовые описания кодов 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-тип в файле конфигурации
mime.types
для расширения :bmp: изменен наimage/bmp
, для расширенияrar
u2014 наapplication/vnd.rar
, а для расширенийdeb
иudeb
теперь указанapplication/vnd.debian.binary-package
. Спасибо Юрию Изоркину.
Пакеты#
-
Обновлены:
angie-module-opentracing — до версии 0.36.0
angie-module-lua — до версии 0.10.27
24.10.2024
Пакеты для операционной системы SberLinux.
29.11.2024
-
Добавлена поддержка WASM с использованием следующих пакетов:
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.
Добавления#
Счетчик
passed
в зоне API статистики, задаваемой директивой status_zone модуля stream, для подсчета соединений, переданных на обработку в другие слушающие сокеты при помощи директив pass.
Исправления#
При использовании виртуальных серверов или директивы pass в модуле stream соединения могли учитываться некорректно в API статистики.
На конфигурациях с 5 ACME-клиентами и более могли происходить падения рабочих процессов; проблема появилась в 1.6.0.
Обработка закэшированных ответов с заголовком
X-Accel-Redirect
могла приводить к падению рабочего процесса. Спасибо Максиму Дунину (freenginx) и Иржи Сетничке.
Пакеты#
-
Обновлены:
angie-console-light — до версии 1.4.0
angie-module-opentracing — до версии 0.35.3
angie-module-zstd — до ревизии
f4ba115
Angie 1.6.0#
Дата выпуска: 28.06.2024.
Добавления#
Директива sticky и сопутствующие настройки в блоке upstream stream-модуля, позволяющие задать режим привязки сессий, при котором все соединения в рамках сессии будут направляться на один и тот же сервер.
Извлечение значений Cookie из RDP-соединений с помощью директивы rdp_preread stream-модуля в переменные $rdp_cookie и $rdp_cookie_NAME, что позволяет логировать и привязывать RDP-сеансы клиентов к одним и тем же серверам при балансировке нагрузки.
Возможность указать несколько директив acme в одном блоке server, что позволяет настраивать получение сертификатов сразу двух типов в рамках данного виртуального сервера.
Ключи командной строки
-m
и-M
для отображения списка встроенных и загруженных модулей.Вся функциональность nginx 1.27.0, включая поддержку виртуальных серверов в модуле stream и директиву
pass
, позволяющую передавать принятые соединения на обработку в другие слушающие сокеты, в том числе модулей HTTP и Mail.
Исправления#
Запрос сертификата по протоколу ACME мог завершаться ошибкой в некоторых конфигурациях с сообщением в логе вида
[alert] getsockname() failed (9: Bad file descriptor)
.Запрос сертификата с большим количеством доменных имен по протоколу ACME мог завершаться ошибкой с сообщением в логе вида
[error] JSON parser error
.ACME-клиенты в конфигурациях с несколькими директивами error_log могли выводить сообщения в несоответствующие логи.
Пакеты#
-
Обновлены:
angie-module-auth-jwt — до версии 0.7.0
angie-module-auth-ldap — до ревизии
241200e
angie-module-jwt — до версии 3.4.1
angie-module-keyval — до версии 0.3.0
angie-module-lua:
stream_lua_module
— до ревизииbea8a0c
angie-module-njs — до версии 0.8.5
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.
Исправления#
Механизм
proxy_next_upstream
работал некорректно при использовании опции resolve директивыserver
в блокеupstream
, если количество полученных IP-адресов отличалось от числа заданных серверов.При запросе сертификата по протоколу 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.
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 при запросе с аргументом
?date-epoch
.Новый статус
recovering
у проксируемых серверов в API статистики, означающий, что сервер медленно восстанавливается после сбоя согласно опцииslow_start
.Теперь ключ
-V
показывает также релевантную версию nginx, что полезно для совместимости со сторонними утилитами, в частности certbot. Спасибо AdvTechnoKing.Вся функциональность nginx 1.25.4.
Исправления#
Если был задействован механизм переиспользования SSL-сессий (proxy_ssl_session_reuse), то при динамическом обновлении списка проксируемых серверов могла происходить утечка из зоны разделяемой памяти (
zone
), настроенной для соответствующего блокаupstream
.
Пакеты#
Пакеты для операционных систем 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
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 и набора директив
proxy_quic_
иproxy_http3_
.Механизм плавного ввода проксируемого сервера в работу после сбоя с помощью опции
slow_start
директивы server в блоке upstream.Директива mqtt_preread модуля stream, позволяющая помещать имя пользователя и идентификатор клиента из пакета CONNECT протокола MQTT в переменные $mqtt_preread_username и $mqtt_preread_clientid.
Ограничение скорости отдачи MP4-файлов клиенту пропорционально битрейту с помощью директив mp4_limit_rate и mp4_limit_rate_after, снижающее нагрузку на полосу пропускания.
Вся функциональность nginx 1.25.3.
Исправления#
Если проксируемый сервер был единственным в группе, то он мог некорректно учитываться как
unavailable
в API статистики даже после восстановления работоспособности.
Пакеты#
Пакеты для операционной системы 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:
http_lua_module
— до версии 0.10.26;stream_lua_module
— до версии 0.0.14
Angie 1.3.2#
Дата выпуска: 23.11.2023.
Исправления#
Были возможны некорректные значения метрик в формате Prometheus, в значениях которых использовались отличные от
$p8s_value
переменные; на практике проблема могла наблюдаться сangie_http_upstreams_peers_state
иangie_stream_upstreams_peers_state
из стандартного шаблонаprometheus_all.conf
.Некоторые попытки соединения с проксируемыми серверами могли не учитываться соответствующим образом в API статистики, если ошибка происходила моментально; проблема появилась в 1.3.0.
Пакеты#
04.12.2023
-
Добавлены динамические модули:
07.12.2023
-
Обновлены:
angie-console-light — до версии 1.1.1
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.
Добавления#
Возможность указывать в директиве
location
несколько строк для сопоставления, что позволяет объединить несколько блоковlocation
с одинаковыми настройками и, таким образом, упростить конфигурацию за счет уменьшения дублирования.Экспорт различных метрик статистики в формате Prometheus с гибко настраиваемыми шаблонами при помощи новых директив prometheus и prometheus_template.
Детальная информация и метрики по группам проксируемых stream-серверов в интерфейсе статистики, предоставляемом директивой api.
Опция resolve директивы
server
в блокеupstream
модуля stream, позволяющая отслеживать изменения списка IP-адресов, соответствующего доменному имени, и автоматически обновлять его без перезагрузки конфигурации.Опция service директивы
server
в блокеupstream
модуля stream, позволяющая получать списки адресов из DNS-записей SRV, с базовой поддержкой приоритета.Получение содержимого конфигурационных файлов, с которыми было запущено текущее поколение рабочих процессов, в интерфейсе, предоставляемом директивой api при включении директивы api_config_files.
Отображение номера поколения конфигурации в именах процессов, что позволяет с помощью утилиты
ps
отслеживать успех перезагрузок конфигурации и количество поколений рабочих процессов с предыдущими версиями конфигурации.Вся функциональность nginx 1.25.2.
Исправление#
Сборка завершалась ошибкой при использовании опций
./configure
--without-http_upstream_zone_module
или--without-stream_upstream_zone_module
; ошибка появилась в 1.2.0.
Изменения#
Теперь при загрузке конфигурации OpenSSL используется appname
angie
.
Пакеты#
-
Обновлены:
angie-module-njs — до версии 0.8.1.
Angie 1.2.0#
Дата выпуска: 30.05.2023.
Добавления#
Директива sticky и сопутствующие настройки в блоке upstream HTTP-модуля, позволяющие задать режим привязки сессий, при котором все запросы в рамках сессии будут направляться на один и тот же сервер.
Переменная $upstream_sticky_status, принимающая значения
NEW
,HIT
илиMISS
в зависимости от успеха направления запроса на релевантный проксируемый сервер с включенной привязкой сессий.Поддержка NTLS в HTTP модулях при использовании TLS библиотеки TongSuo, включаемая опцией сборки
‑‑with‑ntls
и настраиваемая с помощью соответствующих директив ssl_ntls и proxy_ssl_ntls.В HTTP прокси-модулях теперь можно настраивать несколько сертификатов разного типа (RSA и ECDSA) и соответствующих им ключей, используя директивы proxy_ssl_certificate и proxy_ssl_certificate_key.
Вывод версии и сборки в отображаемом имени
master
процесса, что позволяет с помощью утилитыps
получить эту информацию о работающем экземпляре сервера.Возможность сжатия модулем gzip ответов со статусом "207 Multi-Status". Спасибо DBotThePony.
Вся функциональность nginx 1.25.0, включая поддержку HTTP/3.
Пакеты#
Пакеты для операционной системы Ubuntu 23.04 "Lunar Lobster".
-
Пакеты динамических модулей:
Пакет
angie-module-lua
включает http_lua_module и stream_lua_module.
13.06.2023
Пакеты для операционных систем Debian 12 "Bookworm" и AlmaLinux.
12.07.2023
-
Добавлены динамические модули:
-
Обновлены:
angie-module-njs — до версии 0.8.0.
28.07.2023
-
Добавлены динамические модули:
18.08.2023
-
Добавлены динамические модули:
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.