Nginx中精准匹配需用location = /path语法,URI必须完全一致(含大小写、结尾斜杠),匹配后立即执行且不再检查其他规则;=与路径间不可有空格,常用于健康检查、首页、错误页等固定路径。

在 Nginx 的 server 块中实现精准匹配,核心是使用 = 修饰符的 location 指令。它要求请求的 URI 必须与配置值**完全一致(字符、大小写、结尾斜杠均需相同)**,一旦匹配成功,Nginx 立即选用该块处理请求,不再检查其他 location 规则。
精准匹配的基本写法
语法非常简洁:
location = /path {<br> # 配置指令,如 return、proxy_pass、root 等<br>}注意:= 和路径之间**不能有空格**;路径末尾的 / 是 URI 的一部分,必须严格对应。
-
location = /api只匹配GET /api,不匹配/api/、/api/v1或/API -
location = /healthz匹配/healthz,但不匹配/healthz?check=1(查询参数不影响匹配,但整个 URI 字符串仍需完全一致)
常见实用场景
精准匹配适合明确、固定、高频的单点请求,例如健康检查、静态资源入口、错误页等:
- 快速响应健康探针:
location = /health { return 200 "OK"; } - 指定首页精确路径:
location = / { root /var/www; index index.html; }(比普通location /更快,跳过前缀最长匹配逻辑) - 覆盖默认错误页:
location = /404.html { root /usr/share/nginx/html; } - 拦截敏感路径:
location = /wp-config.php { deny all; }
与其他 location 的配合要点
精准匹配优先级最高,但需注意它和相邻规则的协作关系:
- 如果同时存在
location = /admin和location /admin,前者会拦截所有/admin请求,后者仅处理/admin/xxx类请求 - 不要把
location = /和location /写反顺序——=总是优先生效,顺序无关 - 避免冗余:比如
location = /index.html和location /index.html同时存在时,后者永远不会被触发
验证是否生效的小技巧
修改配置后,用 nginx -t 检查语法,再 nginx -s reload 重载。然后用 curl -I 测试响应头或返回内容:
$ curl -I http://localhost/health<br>HTTP/1.1 200 OK<br>...
若返回预期状态码或内容,说明精准匹配已正确路由。



















