Nginx 中 location 的作用是依据匹配模式 +URI 来解决用户申请 (转发申请给其余服务器解决或者查找本地文件)。
location 语法是:location [= | ^~ | ~ | ~*] /URI {…}
其中的 “=”, “^~”, “~”, “~*” 指定匹配模式
location 的匹配先依照优先级匹配,同优先级的状况下,再按先后顺序匹配。(即不齐全依照其在配置文件中呈现的程序进行匹配)
优先级程序从高到低顺次为:
- location = /uri1 # 精准匹配 /uri1 (uri1 必须完全一致能力匹配胜利)
- location ^~ /uri2 # 带参前缀匹配 (uri2 和申请 url 的结尾雷同就匹配胜利)
- location ~ /uri3 # 正则匹配 (辨别大小写)
- location ~* /uri4 # 正则匹配 (不辨别大小写)
- location /uri5 # 一般前缀匹配 (uri5 和用户申请 url 的结尾雷同就匹配胜利,如果有多个一般匹配都匹配胜利则按最长的)
- location / # 没有匹配胜利的,走这条规定
1、先精准匹配 =,精准匹配胜利则会立刻进行其余类型匹配;
2、没有精准匹配胜利时,进行带参前缀匹配。先查找带有 ^~ 的前缀匹配,带有 ^~ 的前缀匹配胜利则立刻进行其余类型匹配;
3、4、= 和 ^~ 均未匹配胜利前提下,查找正则匹配 ~ 和 ~*。当同时有多个正则匹配时,按其在配置文件中呈现的先后顺序优先匹配,命中则立刻进行其余类型匹配;
5、1234 均未匹配胜利,则进入规定 5,规定 5 多个匹配胜利,则进入最长的规定 (如有 location /static, 和 location /static/img 两个一般前缀匹配, 当申请是 /static/img/111.jpg 时,第二个 location 匹配的更长,所以和 /static/img 匹配胜利)
6、后面的匹配条件均不满足,就进入这个
完结
同步更新到本人的语雀
https://www.yuque.com/diracke…