$proxy_protocol_tlv_*

Переменные $proxy_protocol_tlv_ предоставляют доступ к информации, содержащейся в формате Proxy Protocol TLV (Type-Length-Value). — NGINX Core (HTTP)

$proxy_protocol_tlv_* NGINX Core (HTTP)

Описание

Переменные $proxy_protocol_tlv_ — это префиксные переменные в NGINX, которые позволяют извлекать конкретные данные в формате Type-Length-Value (TLV) при использовании Proxy Protocol. Этот протокол, часто применяемый в сценариях балансировки нагрузки, передаёт информацию о соединении (например, IP-адреса клиентов) от прокси-сервера к бэкенд-серверу в структурированном виде. Каждый фрагмент данных TLV может быть получен с помощью суффикса, идентифицирующего конкретную запрашиваемую информацию. Эти переменные обычно устанавливаются, когда NGINX настроен на приём Proxy Protocol от прямого клиентского соединения, например при получении трафика от балансировщика нагрузки или прокси-сервера, который также реализует этот протокол. Типичные типы TLV могут включать сведения, такие как адреса клиентов, номера портов и другие заголовочные данные. Эта дополнительная функциональность позволяет бэкенд-серверам принимать более обоснованные решения на основе данных клиента, которые обычно недоступны из-за NAT или других сетевых схем, скрывающих настоящий IP клиента. Например, если элемент TLV указан с суффиксом, соответствующим информации об адресе клиента, переменная вернёт соответствующие данные, отправленные прокси. Если соответствующие данные TLV не предоставлены вышестоящим прокси-сервером, переменная будет пустой или не установлена. Такое поведение особенно полезно в сценариях, требующих точного логирования трафика или настройки поведения на основе данных исходного клиента, что улучшает общую производительность приложения и опыт пользователя.

Пример конфига

server {
    listen 80 proxy_protocol;

    location / {
        default_type text/plain;
        return 200 "Client IP: $proxy_protocol_tlv_client_ip\n";
    }
}

Подсистема

http

Кэшируется

Да

Тип

Префиксная переменная

Контексты

http, server, location

Убедитесь, что Proxy Protocol включён на upstream proxy, чтобы заполнить эти переменные; в противном случае переменные не будут заданы.

Неправильная настройка параметров Proxy Protocol может привести к пустым значениям переменных, что вызовет нежелательное поведение приложения или ошибки.