$proxy_protocol_port

Переменная $proxy_protocol_port возвращает номер порта, с которого принимается проксированный запрос при использовании PROXY protocol. — NGINX Core (HTTP)

$proxy_protocol_port NGINX Core (HTTP)

Описание

Переменная $proxy_protocol_port используется в NGINX для получения номера порта, указанного в заголовке PROXY protocol для проксированных подключений. Она особенно актуальна в конфигурациях, где NGINX выступает в роли обратного прокси или балансировщика нагрузки, позволяя серверу точно определить исходный порт, с которого было установлено клиентское соединение. Эта информация может быть критически важна для ведения логов, мер безопасности или принятия решений на стороне бэкенда. Эта переменная устанавливается только тогда, когда PROXY protocol включён в upstream-блоке сервера. Если PROXY protocol не используется, переменная не будет содержать корректного значения и фактически примет значение 0. Типичными значениями этой переменной являются исходные номера портов, такие как 80 или 443 для HTTP и HTTPS трафика. Использование $proxy_protocol_port даёт более полное представление о входящем запросе, что особенно полезно в многоуровневых архитектурах, где обработка на бэкенде может зависеть от исходного клиентского порта.

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

server {
    listen 80 proxy_protocol;
    location / {
        add_header X-Proxy-Port $proxy_protocol_port;
    }
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location

Убедитесь, что PROXY protocol включён в директиве listen; в противном случае переменная не будет установлена и вернёт 0.

Чтобы переменная предоставляла осмысленные данные, она должна использоваться в контексте, где поддерживается и правильно настроен PROXY protocol.