$location
Переменная $location возвращает имя блока location, который соответствовал текущему запросу в конфигурации NGINX. — 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.