精确匹配用 location = /path 语法,仅匹配完全一致的URI(大小写敏感、无尾斜杠、无查询参数、无正则),优先级最高、性能最优,适用于首页加速、健康检查、防误匹配等场景。

直接用 = 修饰符写在 location 后面,后面跟完整路径,不带正则、不带通配、不能有尾部斜杠或额外字符——它只认一模一样的 URI。
精确匹配 = 的写法要点
语法非常简单:
-
location = / { ... }—— 只匹配根路径/,不匹配/index.html、//或/anything -
location = /login { ... }—— 只匹配/login,不匹配/login/、/login?next=/home、/login.php -
location = /api/v1/status { ... }—— 必须完整一致,大小写敏感,多一个空格或少一个字符都不行
为什么用 = 而不是普通前缀?
它优先级最高,匹配成功立刻终止搜索,性能最好,适合高频固定路径:
- 首页加速:用
location = / { return 200 "OK"; }比location / { ... }更快响应 - 接口兜底:比如
location = /healthz { return 200 "healthy"; },避免被其他正则或前缀规则干扰 - 防误匹配:想严格限制某个路径,防止
/admin被location /admin/ { ... }或正则意外覆盖
常见错误提醒
这些写法都不会生效:
-
location = /static/ { ... }—— 多了尾部斜杠,/static就不匹配了 -
location = /user.* { ... }—— 加了正则符号,= 不支持任何正则语法 -
location = "/user" { ... }—— 引号是非法的,Nginx 配置中 URI 不加引号 -
location = /user?id=1 { ... }—— 查询参数(?...)不在匹配范围内,=只看路径部分
搭配 root 或 return 的典型用例
多数时候配合 return 或 proxy_pass 使用:
- 快速返回:
location = /favicon.ico { return 204; } - 固定跳转:
location = /old-path { return 301 https://example.com/new-path; } - 反向代理特定接口:
location = /api/login { proxy_pass http://auth-svc:8080/login; }


















