История версий Angie#
2024#
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.
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.