$location
$location 变量返回在 NGINX 配置中与当前请求匹配的 location 块的名称。 — NGINX CoolKit Module
$location
NGINX CoolKit Module
说明
$location 变量在 NGINX CoolKit Module 中提供与传入请求匹配的 location 块的名称。它在处理 HTTP 请求时求值,每当 NGINX 在其配置中处理 location 指令时都会使用。随着请求在配置中逐步匹配,NGINX 会检查每个 location 块以找到请求的 URI 的最具体匹配。一旦找到匹配,对应 location 块的名称就会存储在该变量中。 $location 变量的典型值可以是精确路径,例如 '/auth',或者由正则表达式定义的更复杂模式。此功能对记录日志、条件处理以及基于匹配的 location 定制响应非常有用。$location 变量在需要根据匹配的 URI 改变行为的配置场景中尤其有用,例如 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 块被正确定义以匹配所需的 URIs。配置错误的块可能导致意外匹配或完全无匹配。
⚠
避免在可能尚未定义 $location 的上下文中使用它,例如在 server 或 main 配置上下文中。