$remote_port

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

$remote_port NGINX Core (HTTP)

Описание

Переменная $remote_port — встроенная переменная NGINX, которая фиксирует номер TCP-порта, с которого клиент установил соединение с сервером. Она в первую очередь полезна для логирования и организации контроля доступа на основе исходного порта запросов. Эта переменная устанавливается в процессе обработки запроса, конкретно когда NGINX обрабатывает входящее соединение и инициализирует структуру запроса, где сохраняются различные сведения, связанные с клиентом. Когда клиент подключается к серверу, удалённый порт устанавливается операционной системой и становится доступным для NGINX. В типичном сценарии этот номер порта может находиться в диапазоне от 1024 до 65535, так как порты в диапазоне 1-1023 зарезервированы для известных служб. Он также может часто меняться, поскольку клиенты могут подключаться из разных приложений или окружений, из-за чего присваиваются разные номера портов. NGINX использует эту переменную в директивах, например для логирования через директиву 'log_format', а также в правилах контроля доступа, разрешая или запрещая запросы на основе диапазонов исходных портов.

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

server {
    listen 80;
    location / {
        access_log /var/log/nginx/access.log 'Client IP: $remote_addr, Port: $remote_port';
    }
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Значение $remote_port не всегда предсказуемо; оно может различаться между запросами от одного и того же клиента.

Использование $remote_port в правилах безопасности следует осуществлять с осторожностью; возможен спуфинг порта со стороны клиентских приложений.

Эта переменная недоступна во всех контекстах; убедитесь, что вы используете её в правильном контексте, таком как http, server или location.