您的位置:首页 > 运维架构 > Nginx

nginx location

2015-10-24 12:20 477 查看
nginx location

Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }

location @name { ... }

Default: —

Context: server, location

修饰符解释

= 精确匹配

^~ 前缀匹配

无 前缀匹配

~ 区分大小写正则比配

~* 不区分大小正则匹配

@name 内部跳转用,不能嵌套和被嵌套

匹配规则

1,精确匹配(=)成功,则立即停止

2,匹配所有前缀匹配,记住最长前缀匹配的loaction

3,如果最长前缀匹配location是 ^~,则停止

4,然后按照书写顺序匹配正则location,找到则停止

5,如果没有找到匹配的正则location,则用之前找到的最长前缀匹配location

6,如果匹配到合适的location,则返回404

以上规则第6步有一个例外,当前缀匹配(空,^~)串以/结尾(like /app/)时且请求被 proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, or memcached_pass处理

时,当请求 /app (没有结尾的/)(/app没有合适的匹配)时会返回301 location: /app/,如果这不是期望的结果,

应该用 = 或正则匹配

ps:

1,location 里的正则支持捕获

2,匹配的uri最初是解码后的uri,发生内部跳转后可能会跟着变化

3,嵌套location还没有怎明白

参考
http://nginx.org/en/docs/http/ngx_http_core_module.html#location https://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: