nginx提供了非常灵活的location uri路径匹配功能。在配置文件中格式如下:
语法: location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
默认值: —
上下文: server, location
先总结一下location的类型:
-
精确匹配的location
例如:location = /a.txt
匹配一个为/a.txt的uri,完整的url可以是 http://host/a.txt?q=xxx再如:locaiton = /
匹配一个为/的uri, 完整的url可以是 http://host/?q=xxx -
模糊匹配的location
-
前缀匹配
例如:location /a/b/c/
匹配一个以/a/b/c/为前缀路径的uri
完整的url可以是 http://host/a/b/c/x.jpg,或者:http://host/a/b/c/xxx/m.php?q=xxxx -
正则匹配
-
不忽略大小写
例如:location ~* .(gif|jpg|jpeg)$
匹配所有以gif或者jpg或者jpeg为文件扩展名的uri,并且后缀名不区分大小写 -
忽略大小写
例如: location ~ .mp4$
匹配所有以mp4为扩展名的uri,并且区分后缀名的大小写 -
正则前缀匹配
例如:location ^~ /images
匹配所有以/images开头的uri
-
-
-
默认匹配的location
例如:location /
匹配所

本文详细解释了Nginx配置中location指令的多种匹配模式,包括精确匹配、前缀匹配、正则表达式匹配以及命名location的使用。还介绍了URI规范化过程和匹配流程,以及匹配未成功时的404处理。

1556

被折叠的 条评论
为什么被折叠?



