|
Опубликован выпуск высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера Angie 1.12.0, ответвлённого от Nginx группой бывших разработчиков проекта, уволившихся из компании F5 Network. Исходные тексты Angie доступны под лицензией BSD. Проект получил сертификаты совместимости с российскими операционными системами Ред ОС, Astra Linux Special Edition, Роса Хром Сервер, Альт и ФСТЭК-версии Альт. На базе Angie развивается проприетарный коммерческий продукт Angie PRO, включённый в реестр российского ПО.
Изменения в Angie 1.12.0:
- Из коммерческой версии Angie PRO в общедоступную открытую версию перенесены следующие возможности:
- Балансировка с учётом среднего времени получения заголовка ответа или полного ответа от проксируемых HTTP-серверов, а также с учётом среднего времени установки соединения, получения первого или последнего байта ответа от проксируемых stream-серверов. Настройка осуществляется при помощи директивы least_time в блоке upstream.
- Возможность привязки сессий к проксируемым серверам, позволяющая обнаруживать сессии и запоминать их в разделяемой памяти сервера. Возможность включается через установку режима learn в директиве sticky. Настройка создания и поиска сессий осуществляется через переменные, например, сессии можно выделять по значению Cookie.
- В директиву server добавлен режим "drain", при котором на сервер не направляются новые запросы, но продолжают приходить запросы, связанные с сессиями, ранее привязанными через директиву sticky (для плавного вывода сервера из ротации).
- В API статистики в разделы /status/http/upstreams/ и /status/stream/upstreams/ добавлены метрики со средним временем получения HTTP-заголовка ответа и полного ответа.
- Добавлен новый HTTP-модуль DoH с реализацией сервера DNS-over-HTTPS, принимающего DNS-запросы по HTTP/HTTPS и проксирующего их к DNS-серверам через UDP или TCP.
- Предоставлена возможность получения сертификатов для IP-адресов по протоколу ACME через сервис Let's Encrypt. Добавлена поддержка ACME-профилей, настраиваемая через параметр profile в директиве acme_client. Добавлена поддержка расширения EAB (External Account Binding для привязки ACME-аккаунта к внешней учётной записи на стороне удостоверяющего центра с использованием HMAC-аутентификации. Добавлена директива acme_dns_ttl для изменения значения TTL в ответах на DNS-запросы при верификации доменов через ACME (для обхода фильтрации DNS-ответов с низким TTL).
- Включено автоматическое получение адресов DNS-серверов из файла в формате resolv.conf, указанного в через параметр conf в директиве resolver. Файл автоматически перечитывается после его изменения.
- В директиву error_log добавлен параметр filter для фильтрации сообщений, записываемых в лог, по меткам, выставленным через новую директиву error_log_user_tag.
Из freenginx перенесён параметр rate для директивы error_log, позволяющий ограничить частоту логирования ошибок. Добавлена возможность вывода логов в формате JSON через выставление format=json в директиве error_log.
- В модуль rewrite добавлена директива goto для выполнения внутреннего редиректа на именованный блок "location" без изменения URI. Поддерживается условное выполнение внутри блока if.
- Реализована тёмная цветовая схема для встроенных страниц ошибок и списков AutoIndex.
- В модуле stream реализована поддержка сбора статистики с помощью модуля Metric, отдаваемой через API /status/stream/metric_zones/. Поддерживается агрегирование данных на разных стадиях обработки соединения в реальном времени с помощью переменных по заданным ключам.
Добавлен API /certificates/ с информацией о сертификатах, заданных в конфигурации или полученных ACME-клиентами.
- Из репозитория проекта nginx перенесены изменения, состояние которых соответствует версии nginx 1.31.2, включая модуль ngx_http_tunnel_module для туннелирования с использованием метода HTTP/1.1 CONNECT и возможность соединения с проксируемыми серверами по протоколу HTTP/2.
|