location块在server块中使用,它的作用是根据客户端请求URL去定位不同的应用。
匹配格式 | 作用 |
---|---|
location = /uri | = 表示精确匹配,只有完全匹配上才能生效 |
location ^~ /uri | ^~ 匹配以某个URL前缀开头的请求,不支持正则表达式 |
location ~ pattern | ~区分大小写的正则匹配 |
location ~* pattern | ~*不区分大小写的正则匹配 |
location /uri | 前缀匹配,不带任何修饰符,但是在正则匹配之后 |
location / | 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default |
前缀匹配时,Nginx 不对 url 做编码,因此请求为 /static/20%/xx,可以被规则 ^~ /static/ /XX 匹配到(注意是空格)
多个 location 配置的情况下匹配顺序为:
首先精确匹配 =
其次前缀匹配 ^~
其次是按文件中顺序的正则匹配
然后匹配不带任何修饰的前缀匹配。
最后是交给 / 通用匹配
当有匹配成功时候,停止匹配,按当前匹配规则处理请求。