$request_port

Переменная $request_port содержит номер порта, который клиент использует для отправки запроса на сервер. — NGINX Core (HTTP)

$request_port NGINX Core (HTTP)

Описание

Переменная $request_port в NGINX обозначает порт, на котором был получен запрос от клиента. Эта переменная устанавливается во время обработки запроса и получается из сведений о соединении клиента, указанных в заголовке запроса. Когда клиент делает HTTP или HTTPS запрос, запрос маршрутизируется в указанный серверный блок на основе критериев сопоставления, которые включают номер порта. Для стандартных HTTP-запросов это обычно порт 80, а для HTTPS — порт 443. Если запрос сделан через нестандартный порт, $request_port отразит этот конкретный номер порта. Например, если клиент подключается к порту 8080, то значение $request_port будет "8080". Важно отметить, что при использовании таких протоколов, как HTTP/2, порт может определяться динамически, но NGINX по-прежнему зафиксирует и отразит номер порта, использованный для этого соединения, в переменной $request_port. Осведомлённость об этом значении может быть полезна для логирования, условной конфигурации или при переписывании URL на основе полученного порта.

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

server {
    listen 80;
    location / {
        return 200 "Request received on port: $request_port";
    }
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

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

Использование этой переменной в определённых контекстах может привести к неожиданным результатам, если запрос пересылается или изменяется вышестоящим сервером.