zoukankan      html  css  js  c++  java
  • nginx的location匹配规则

    参考博客:https://www.cnblogs.com/yyxianren/articles/10723052.html

    Nginx location 配置语法

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

      location @name { ... }

    location 配置可以有两种配置方法

    前缀 + uri(字符串/正则表达式)

    @ + name(内部跳转)

    前缀含义

    =:精确匹配(必须全部相等)

    ~:大小写敏感

    ~*:忽略大小写

    ^~:只需匹配uri部分

    @:内部服务跳转

    规则分类分为三类:

    正则匹配 :其中“~ ”和“~”以及“!~”和“!~”前缀表示正则location .

    精准匹配  location = url {}

    普通匹配 : 其他前缀(包括:“^~”和“@ ”)和无任何前缀的都属于普通location .

    =精确匹配

    location = / { #规则 }   

      #则匹配到 `http://www.example.com/` 这种请求

    ~大小写敏感

    location~ /Example/ { #规则 }   

      #请求示例#http://www.example.com/Example/ [成功]

      #http://www.example.com/example/ [失败]

    ~*大小写忽略

     location~* /Example/ { #规则 }

      # 则会忽略 uri 部分的大小写

      #http://www.example.com/Example/ [成功]

      #http://www.example.com/example/ [成功]

    ^~只匹配以 uri 开头

     location ^~ /img/ { #规则 }

      #以 /img/ 开头的请求,都会匹配上

      #http://www.example.com/img/a.jpg [成功]

      #http://www.example.com/img/b.mp4 [成功]

    匹配规则:

     1.首先会进行精准匹配,如果精准匹配能够匹配到,那么就以精准匹配为准

     2、其次会进行普通匹配,如果然后记忆普通匹配的最大精度匹配,如果最大精度匹配是完全匹配,或者^~ 则匹配结束,返回匹配结果为最大精度匹配结果,普通匹配不关注顺序,否则记忆最大精度匹配结果。

    3、 最后进行正则匹配。从上至下开始正则匹配,正则匹配,如果命中,则终止匹配。返回正则匹配的结果,如果正则匹配不到,则返回最大今年精度的普通匹配的结果。正则匹配关注顺序一旦匹配中,则不再继续匹配,所以正则匹配一定要注意顺序。

    博客中如有错误,欢迎指正。如有疑问,欢迎评论。希望能和大家一起学习进度。

     

     

  • 相关阅读:
    VUE处理项目中的ESLint语法报错问题
    通过Focas连接Fanuc的NC Guide
    IdentityServer
    Dapper2.0.78手册翻译
    Framework项目持续集成(jenkins)及集合SonarQube
    基于 GitBook 搭建个人博客
    GitBook 常用插件
    Vue管理系统前端系列六动态路由-权限管理实现
    Vue管理系统前端系列五自定义主题
    Vue管理系统前端系列四组件拆分封装
  • 原文地址:https://www.cnblogs.com/cheng21553516/p/11204520.html
Copyright © 2011-2022 走看看