$proxy_protocol_tlv_*
Переменные $proxy_protocol_tlv_ предоставляют доступ к информации, содержащейся в формате Proxy Protocol TLV (Type-Length-Value). — 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 может привести к пустым значениям переменных, что вызовет нежелательное поведение приложения или ошибки.