$location

Переменная $location возвращает имя блока location, который соответствовал текущему запросу в конфигурации NGINX. — NGINX CoolKit Module

$location NGINX CoolKit Module

Описание

Переменная $location в NGINX CoolKit Module содержит имя совпавшего блока location для входящего запроса. Она вычисляется при обработке HTTP-запроса всякий раз, когда NGINX обрабатывает директивы location в своей конфигурации. По мере прохождения запроса через конфигурацию NGINX проверяет каждый блок location, чтобы найти наиболее конкретное совпадение для запрошенного URI. Как только совпадение найдено, имя соответствующего блока location сохраняется в этой переменной. Типичные значения переменной $location могут быть точными путями, например '/auth', или более сложными шаблонами, определёнными регулярными выражениями. Эта функциональность полезна для логирования, условной обработки и настройки ответов в зависимости от совпавшего location. Переменная $location особенно полезна в конфигурациях, где URL-перенаправления или правила доступа определяются совпавшим location. Как некешируемая переменная, $location отражает изменения в контексте обработки запроса в реальном времени. Это гарантирует её динамическое обновление по мере того, как NGINX обрабатывает запросы в рамках определённых контекстов location, что делает её необходимой в сценариях, где поведение должно меняться в зависимости от совпавшего URI.

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

http {
    server {
        location = /auth {
            internal;
        }
        location / {
            add_header X-Matched-Location $location;
            proxy_pass http://backend;
        }
    }
}

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location, if

Убедитесь, что ваши блоки location определены корректно, чтобы соответствовать желаемым URI. Неправильно настроенные блоки могут привести к неожиданным совпадениям или к отсутствию совпадений.

Избегайте использования $location в контекстах, где он может ещё не быть определён, например в контекстах конфигурации server или main.