#yyds干货盘点#Nginx中的location规则
  Qp5JTyIxtbwu 2023年11月02日 32 0

Nginx中location的作用是根据匹配模式+URI来处理用户请求(转发请求给其他服务器处理或者查找本地文件)。

location语法是: location [ = | ^~ | ~ | ~* ] /URI { … }
其中的 "=", "^~", "~", "~*" 指定匹配模式

location 的匹配先按照优先级匹配,同优先级的情况下,再按先后顺序匹配。(即不完全按照其在配置文件中出现的顺序进行匹配)

优先级顺序从高到低依次为:

  1. location = /uri1 # 精准匹配/uri1 (uri1必须完全一致才能匹配成功)
  2. location ^~ /uri2 # 带参前缀匹配 (uri2和请求url的开头相同就匹配成功)
  3. location ~ /uri3 # 正则匹配(区分大小写)
  4. location ~* /uri4 # 正则匹配(不区分大小写)
  5. location /uri5 # 普通前缀匹配 (uri5和用户请求url的开头相同就匹配成功,如果有多个普通匹配都匹配成功则按最长的)
  6. location / # 没有匹配成功的,走这条规则

1、先精准匹配 = ,精准匹配成功则会立即停止其他类型匹配;
2、没有精准匹配成功时,进行带参前缀匹配。先查找带有 ^~ 的前缀匹配,带有 ^~ 的前缀匹配成功则立即停止其他类型匹配;
3、4、= 和 ^~ 均未匹配成功前提下,查找正则匹配 ~ 和 ~* 。当同时有多个正则匹配时,按其在配置文件中出现的先后顺序优先匹配,命中则立即停止其他类型匹配;
5、1234均未匹配成功,则进入规则5,规则5多个匹配成功,则进入最长的规则(如有location /static,和location /static/img 两个普通前缀匹配, 当请求是/static/img/111.jpg时,第二个location匹配的更长,所以和/static/img匹配成功)
6、前面的匹配条件均不满足,就进入这个


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
Qp5JTyIxtbwu