location
`location` 指令定义了 NGINX 应如何根据 URI 处理请求。 — NGINX HTTP Core
location
serverlocation
语法location [ = | ~ | ~* | ^~ ] uri { ... }
默认值none
上下文server, location
模块NGINX HTTP Core
参数block (1-2)
说明
`location` 指令在 NGINX 中用于为特定的请求 URI 或 URI 模式定义具体的处理方式。它允许根据跟在服务器名后面的 URL 的部分应用不同的配置。该指令可以放在 `server` 块中,或嵌套在另一个 `location` 块内以创建更专门的行为。 在定义 `location` 时,可以指定精确匹配、前缀匹配或正则表达式。例如,`location /images/` 匹配任何以 `/images/` 开头的请求,而 `location = /` 仅匹配目标为根路径的请求。这意味着对 `/images/logo.png` 的请求会由 `location /images/` 处理,但不会由 `location = /` 处理。对于更复杂的匹配要求,也可以使用正则表达式,并使用 `~` 和 `~*` 修饰符分别表示区分大小写和不区分大小写的匹配。 此外,在 `location` 块中,可以指定诸如 `proxy_pass`、`rewrite` 或其他与 HTTP 处理相关的 NGINX 指令。此灵活性允许对不同请求的处理进行详细控制,从而根据其 URI 更高效、恰当地提高 NGINX 服务器对不同类型请求的服务能力。
配置示例
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
location /images/ {
root /var/www/images;
}
}⚠
错误地嵌套使用 `location` 块可能导致意外行为。
⚠
未使用正确的匹配修饰符可能导致无法匹配到目标块。
⚠
locations 重叠且缺乏正确的特异性会导致请求处理混乱。