location /能匹配所有请求,因为uri均以/开头,它作为最长前缀兜底规则,在精确、前缀(^~)、正则匹配全部失败后生效;必须置于配置末尾,常用于静态服务、反向代理兜底或统一返回。

用 location / 就能匹配所有请求。
为什么 location / 可以匹配全部
斜杠 / 是 URI 的根前缀,任何合法的 HTTP 请求路径都以 / 开头。Nginx 的“一般匹配”规则会将所有请求纳入该范围,属于最低优先级的兜底规则。
- 它不区分大小写,也不依赖正则引擎,性能开销最小
- 它在所有其他更具体的匹配(如
=、^~、~)失败后才生效 - 例如:
/、/api、/static/css/main.css、/user/login?next=/home全部命中
实际配置中要注意顺序
这条规则必须放在 最后,否则会提前截断其他更精确的匹配:
- 错误写法(/ 在前面):所有请求都被它吃掉,后面规则永不执行
- 正确写法:先写
location = /、location ^~ /static/、location ~ \.js$等,最后放location /
搭配 root 或 proxy_pass 才有意义
单独写 location / 不做处理,只是匹配入口。常见用法有:
- 静态服务:
root /var/www/html;+index index.html; - 反向代理兜底:
proxy_pass http://backend_default; - 统一返回:
return 404 "Not configured for this path";
不要和 location = / 混淆
location = / 只匹配根路径 http://example.com/,不匹配 /about 或 /api/;而 location / 是真正的“通配”,覆盖全站所有路径。











