$proxy_port

Переменная $proxy_port возвращает номер порта проксируемого сервера. — NGINX Core (HTTP)

$proxy_port NGINX Core (HTTP)

Описание

Переменная $proxy_port в NGINX используется для указания номера порта проксируемого сервера, заданного в директиве proxy_pass. Эта переменная особенно полезна, когда нужно вести логирование или условно обрабатывать запросы на основе порта целевого сервера. Она устанавливается всякий раз, когда запрос проксируется с помощью директивы `proxy_pass`. Если в `proxy_pass` указано имя хоста, NGINX разрешает его в адрес и порт, и переменная $proxy_port получает этот порт. Как правило, этот порт будет 80 для HTTP-запросов и 443 для HTTPS, но он может отличаться в зависимости от конфигурации вашего upstream-сервера. В сценариях, когда запрос не проксируется, или если порт явно не определён в конфигурации proxy_pass, $proxy_port может возвращать пустую строку. Важно убедиться, что конфигурация proxy_pass корректно указывает протокол и порт, чтобы эффективно использовать эту переменную. Вы также можете комбинировать её с другими переменными, такими как $proxy_host, чтобы создавать динамическое поведение в ваших конфигурациях.

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

location /example {
    proxy_pass http://backend_server:8080;
    access_log /var/log/nginx/proxy_access.log "Proxy to port: $proxy_port";
}

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location, if

Если прокси не задан или если URL в proxy_pass не указывает порт, $proxy_port может вернуть пустое значение.

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