port_in_redirect

Директива `port_in_redirect` управляет тем, включается ли номер порта запроса в перенаправления, генерируемые NGINX.

Синтаксисport_in_redirect on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива port_in_redirect используется для определения того, как NGINX обрабатывает номер порта в ответах с перенаправлением, генерируемых сервером. При установке этой директивы в on NGINX включает номер порта в заголовок Location любых ответов с перенаправлением, которые он генерирует, если сервер прослушивает нестандартный порт. Это особенно полезно для точного направления клиентов на правильный хост и порт в случаях, когда веб‑сервер работает не на стандартных портах HTTP (80) или HTTPS (443). Напротив, при установке в off номер порта опускается из URL перенаправления, что означает, что клиенты при переходе по перенаправлению могут использовать стандартные порты по умолчанию.

С практической точки зрения эта директива может быть критически важна для обеспечения корректного перенаправления клиентов при доступе к службам, настроенным на использование нестандартных портов, поскольку отсутствие номера порта в перенаправлении может привести к путанице или к сбоям запросов. Она применима в контекстах http, server и location, что обеспечивает гибкость в зависимости от требований конкретного сервера или пути. Настройка port_in_redirect помогает устранить неоднозначности, которые могут возникать из‑за сложных конфигураций сервера с несколькими службами, работающими на разных портах.

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

server {
    listen 8080;
    port_in_redirect on;
    location / {
        return 301 http://example.com;
    }
}

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

Если ваш сервер работает на стандартных портах, установка этой директивы в on может необоснованно раскрыть порт в ответах.

Будьте осторожны при сочетании с конфигурациями HTTPS и нестандартными портами.

← Ко всем директивам