$server_port

Переменная $server_port возвращает номер порта, на котором был получен текущий запрос.

Описание

Переменная $server_port в NGINX динамически устанавливается во время обработки запроса и отражает порт, на котором сервер прослушивает входящие соединения. Она особенно полезна при настройке ответов, которые могут различаться в зависимости от номера порта, например при включении определённых заголовков ответа или применении правил брандмауэра. Переменная учитывает как порт, указанный в конфигурации, так и порт, использованный клиентом для инициирования запроса, что обеспечивает ясность в конфигурациях с несколькими портами.

Эта переменная обычно устанавливается при определении блока server в файле конфигурации NGINX. Например, если блок server настроен на прослушивание порта 80, любые запросы, поступающие на этот порт, установят значение переменной $server_port равным 80. Напротив, если блок server прослушивает альтернативный порт, например 443 (обычно используемый для HTTPS), переменная отразит это значение. Благодаря этому $server_port является необходимой при создании конфигураций, которые полагаются на различение, например, трафика HTTP и HTTPS, а также при управлении приложениями, работающими на нестандартных портах.

Типичные значения $server_port включают 80 для HTTP, 443 для HTTPS или любой другой пользовательский порт. Переменная не включает протокол (HTTP/HTTPS), а фокусируется исключительно на номере порта, обеспечивая гибкость и точность для различных конфигураций сервера.

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

server {
    listen 80;
    server_name example.com;

    location / {
        add_header X-Server-Port "$server_port";
    }
}
⚠

Имейте в виду, что значение $server_port определяется во время выполнения, поэтому оно может отличаться от настроенного порта прослушивания, если при проксировании или перенаправлении используется другой порт.

⚠

Если NGINX находится за балансировщиком нагрузки или прокси, который изменяет порт, $server_port будет отражать порт, на котором NGINX получает запрос, а не внешний порт.

← Ко всем переменным