port_in_redirect

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

port_in_redirect
httpserverlocation
Синтаксисport_in_redirect on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы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 и нестандартными портами.