Модули#

В этом справочнике описаны модули Angie, как собственные, так и сторонние, даны примеры конфигурации, перечислены их директивы и параметры, а также встроенные переменные.

Основной модуль#

Core

Управление служебными файлами, процессами и другими модулями Angie.

HTTP-модули#

HTTP

Основная функциональность для обработки HTTP-запросов и ответов, управления HTTP-сервером, соединениями и статическими файлами.

Access

Контроль доступа на основе IP-адресов и диапазонов CIDR.

ACME

Автоматическое получение и обновление SSL-сертификатов по протоколу ACME для HTTP-серверов.

Docker

Динамическое обновление групп проксируемых серверов по Docker-меткам контейнеров.

Addition

Вставка заданного фрагмента до или после тела ответа.

API

RESTful HTTP-интерфейс для получения базовой информации о веб-сервере и его статистики в формате JSON, а также управления группами проксируемых серверов.

Auth Basic

Базовая HTTP-аутентификация для контроля доступа по имени пользователя и паролю.

Auth Request

Авторизация с помощью подзапроса к внешнему HTTP-сервису.

AutoIndex

Автоматический листинг директорий без индексного файла.

Browser (устарел)

Определение браузера на основе заголовка User-Agent.

Charset

Настройка и преобразование кодировки ответа.

DAV

Управление файлами на сервере по протоколу WebDAV.

DoH

Сервер DNS over HTTPS (RFC 8484), проксирующий DNS-запросы к группе DNS-серверов через UDP или TCP.

Empty GIF

Отдача однопиксельного прозрачного GIF.

FastCGI

Проксирование запроса к FastCGI-серверу.

FLV

Псевдо-стриминг файлов в формате Flash Video (FLV).

Geo

Преобразование IP-адресов в заданные значения переменных.

GeoIP

Получение данных об IP-адресах на основе геолокации по базам MaxMind GeoIP.

gRPC

Проксирование запроса к gRPC-серверу.

GunZIP

Распаковка сжатых GZip-ответов для их модификации и в случаях, когда клиент не поддерживает компрессию.

GZip

Сжатие ответов методом GZip для экономии трафика.

GZip Static

Отдача статических файлов, предварительно сжатых методом GZip.

Headers

Изменение полей заголовка ответа.

HTTP/2

Обработка запросов по протоколу HTTP/2.

HTTP/3

Обработка запросов по протоколу HTTP/3.

Image Filter [1]

Преобразование изображений.

Index

Настройка индексных файлов, обслуживающих запросы с косой чертой в конце (/).

Limit Conn

Ограничение числа одновременных запросов (активных соединений) для защиты от перегрузки.

Limit Req

Ограничение частоты запросов для защиты от перегрузки и подбора паролей.

Log

Настройка журнала запросов для отслеживания обращений к ресурсам с целью мониторинга и анализа.

Map

Преобразование переменных на основе предопределенных пар "ключ-значение".

Metric

Пользовательские числовые метрики в API статистики.

Memcached

Получение ответов от Memcached-сервера.

Mirror

Зеркалирование запросов на другие серверы.

MP4

Псевдо-стриминг файлов в формате MP4.

Perl [1]

Обработчики для расширения функциональности путем задания дополнительной логики на языке Perl.

Prometheus

Метрики сервера в формате, совместимом с Prometheus, для мониторинга и сбора статистики.

Proxy

Реверсивное проксирование запросов к другим HTTP-серверам.

Random Index

Случайный выбор индексного файла для запросов, оканчивающихся косой чертой (/).

RealIP

Определение адреса и порта клиента при работе за другим прокси-сервером.

Referer

Валидация значений заголовка Referer.

Rewrite

Модификация URI запроса, перенаправления, установка переменных и выбор конфигурации по условию.

SCGI

Проксирование запроса к SCGI-серверу.

Secure Link

Создание защищенных ссылок с возможностью ограничения срока доступа.

Slice

Разделение запроса на множество подзапросов к отдельным фрагментам для лучшего кэширования больших ответов.

Split Clients

Создание переменных для A/B-тестирования, канареечных релизов, шардинга и других сценариев, требующих разделения по пропорциональным группам.

SSI

Обработка команд SSI (Server Side Includes) в ответах.

SSL

Настройка SSL/TLS для обработки запросов по протоколу HTTPS.

Stub Status (устарел)

Глобальные счетчики соединений и запросов в текстовом формате.

Sub

Поиск и замена фрагментов в теле ответа.

Tunnel

Обработка запросов HTTP/1.1 CONNECT и установление сквозных туннелей.

Upstream

Настройка групп проксируемых серверов для балансировки нагрузки.

Upstream Probe

Настройка активных проверок работоспособности для групп проксируемых серверов.

UserID

Выдача и обработка cookie с уникальным идентификатором клиента для отслеживания сеансов и аналитики.

uWSGI

Проксирование запроса к uWSGI-серверу.

XSLT [1]

Преобразование XML-документов с помощью языка XSLT.

Потоковые модули#

Stream

Основная функциональность потокового сервера для балансировки протоколов TCP и UDP на уровне L4.

Access

Контроль доступа на основе IP-адресов и диапазонов CIDR.

ACME

Автоматическое получение и обновление SSL-сертификатов по протоколу ACME для потоковых серверов.

Geo

Преобразование IP-адресов в заданные значения переменных.

GeoIP

Получение данных об IP-адресах на основе геолокации по базам MaxMind GeoIP.

Limit Conn

Ограничение числа одновременных соединений для защиты от перегрузки.

Log

Настройка журнала сессий для отслеживания обращений к ресурсам с целью мониторинга и анализа.

Map

Преобразование переменных на основе предопределенных пар "ключ-значение".

Metric

Пользовательские числовые метрики в API статистики реального времени.

MQTT Preread

Чтение идентификатора клиента и имени пользователя из соединения по протоколу MQTT до момента принятия решения о балансировке.

Pass

Передача принятых соединений напрямую в настроенный слушающий сокет.

Proxy

Настройка проксирования к другим серверам.

RDP Preread

Чтение cookie из соединения по протоколу RDP до момента принятия решения о балансировке.

RealIP

Определение адреса и порта клиента при работе за другим прокси-сервером.

Return

Отправка в ответ клиенту при его подключении заданного значения без дальнейшего проксирования.

Set

Установка заданных значений переменных.

Split Clients

Создание переменных для A/B-тестирования, канареечных релизов, шардинга и других сценариев, требующих разделения по пропорциональным группам.

SSL

Терминация протоколов SSL/TLS и DTLS.

SSL Preread

Извлечение информации из сообщения ClientHello без терминации SSL/TLS и до момента принятия решения о балансировке.

Upstream

Настройка групп проксируемых серверов для балансировки нагрузки.

Upstream Probe

Настройка активных проверок работоспособности для групп проксируемых серверов.

Почтовые модули#

Mail [1]

Основная функциональность почтового прокси-сервера.

Auth HTTP

Аутентификация пользователей и выбор сервера для последующего проксирования с помощью HTTP-запросов к внешнему серверу.

IMAP

Поддержка протокола IMAP.

POP3

Поддержка протокола POP3.

Proxy

Настройка проксирования к другим серверам.

RealIP

Определение адреса и порта клиента при работе за другим прокси-сервером.

SMTP

Поддержка протокола SMTP.

SSL

Поддержка протоколов SSL/TLS и StartTLS.

Модуль Google PerfTools#

Google PerfTools

Отвечает за интеграцию с библиотекой Google Performance Tools для профилирования и анализа производительности приложений.

Модули WASM#

WASM [1]

Основная функциональность WASM, позволяющая запускать WASM-код в Angie.

WAMR

Интеграция с WebAssembly Micro Runtime.

Wasmtime

Интеграция со средой выполнения Wasmtime.

Сторонние модули#

Сторонние nginx-совместимые модули, для которых мы собираем пакеты. Полный перечень с кратким описанием — в разделе Сторонние модули.

Сноски