附001.Nginx location语法规则

一 location规则

基本语法: location [=|~|~*|^~]/uri/{…}

修饰符释义:

对请求的url序列化。例如,对%xx等字符进行解码,去除url中多个相连的/,解析url中的.,..等。这一步是匹配的前置工作。

location有两种表示形式,一种是使用前缀字符,一种是使用带~或~*修饰符的正则。

其相应的匹配过程如下:

注意:普通命中顺序无所谓,是因为按命中的长短来确定。正则命中,顺序有所谓,因为是从前入往后命中的。

基于以上的匹配过程,我们可以得到以下两点启示:

由location匹配规则可知,其匹配优先级为:(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/) 。

二 location规则示例

访问:http://location.linuxds.com/,将匹配规则A:

访问:http://location.linuxds.com/login,将匹配规则B:

访问:http://location.linuxds.com/static/test.html,将匹配规则C:

访问:http://location.linuxds.com/static/files/test.txt,将匹配规则D:

解释:虽然也符合规则C,但基于最大匹配原则,因此优先选择规则D。

访问:http://location.linuxds.com/test.txt,将匹配规则E:

解释:虽然也符合规则F,但正则中基于顺序优先,因此优先选择规则E。

访问:http://location.linuxds.com/static/test.txt,将匹配规则C:

解释:虽然也符合规则F,但基于匹配优先级^~ > ~,~*,因此优先选择规则C。

访问:http://location.linuxds.com/test.TXT,将匹配规则G:

解释:规则E区分大小写,规则F不区分大小写,因此优先选择规则F。

访问:http://location.linuxds.com/image/test.txt,将匹配规则E:

解释:虽然也符合规则Y,但基于正则匹配优先,因此优选选择规则E。

访问:http://location.linuxds.com/image/test.tiff,将匹配规则G:

解释:没有更高优先级的其他规则(正则或=),因此匹配规则G。

访问:http://location.linuxds.com/work/1234,将匹配规则I:

解释:如上除H之外所有规则都不匹配,所有的地址都以 / 开头,所以这条规则将作为最后匹配规则。

参考:

http://www.zzvips.com/article/33760.html

https://juejin.im/post/5ce5e1f65188254159084141

http://www.zzvips.com/article/33760.html

https://www.nginx.cn/doc/standard/httpcore.html #官方参考

三 正则与判断

参考:https://blog.csdn.net/weixin_33726943/article/details/86007331

Original: https://www.cnblogs.com/itzgr/p/13359249.html
Author: 木二
Title: 附001.Nginx location语法规则

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/544071/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • java 动态代理

    一:动态代理: 1.JDK动态代理(接口方式) 介绍:使用java反射包中的类和接口实现动态代理的功能,反射包:java.lang.reflect,里面有三个类:Invocatio…

    Java 2023年6月5日
    093
  • Nginx反向代理的几种配置模板

    因为内网服务越来越多,各种IP加端口地址根本记不住,于是用Nginx做反响代理,也可以很好管理内网的地址分发。 下面提供几种Nginx配置模板。因为也是自己摸索着配置的,有错误的地…

    Java 2023年5月30日
    084
  • CAS原子性操作

    CAS原理解析 1、CAS基本概念 CAS(Compare And Swap)也叫做比较与交换,是一种无锁原子算法,映射到操作系统就是一条cmpxchg硬件汇编指令,通过硬件命令保…

    Java 2023年6月5日
    079
  • Java8 中增强 Future:CompletableFuture

    增强的 Future:CompletableFuture CompletableFuture(它实现了 Future 接口) 和 Future 一样,可以作为函数调用的契约。当你向…

    Java 2023年5月29日
    063
  • JAVA 推外内存

    https://hllvm-group.iteye.com/group/topic/27945%EF%BC%89%E3%80%82 https://blog.csdn.net/a8…

    Java 2023年5月29日
    083
  • 信息系统项目管理师计划

    报名地址:https://bm.ruankao.org.cn/sign/welcome#test=2 课程内容 视频时长 计划开始时间 实际开始时间 完成时间 信息系统项目管理基础…

    Java 2023年6月9日
    070
  • request.getParameter(“参数名”) 中文乱码解决方法

    解决问题,先要研究问题,URL传中文参数为什么会出现乱码? 原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字…

    Java 2023年6月5日
    077
  • [转帖]rewrite规则写法及nginx配置location总结

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年5月30日
    071
  • Buuctf-Web-[极客大挑战 2019]EasySQL

    前言 刷题网址:https://buuoj.cn/challenges 首先在网页测试输入 admin, admin,如下图,发现是GET传输 然后在后面输入一个 ‘,之后发现报错…

    Java 2023年6月13日
    083
  • Spring

    一、Spring SSH:Struct2 + Spring + Hibernate SSM:SpringMVC + Spring + MyBatis! 配置文件 org.sprin…

    Java 2023年6月8日
    085
  • 讲透JAVA Stream的collect用法与原理,远比你想象的更强大

    大家好,又见面了。 在我前面的文章《吃透JAVA的Stream流操作,多年实践总结》中呢,对Stream的整体情况进行了细致全面的讲解,也大概介绍了下结果收集器 Collector…

    Java 2023年6月7日
    076
  • 多台云服务器的 Kubernetes 集群搭建

    环境 两台或多台腾讯云服务器(本人搭建用了两台),都是 CentOs 7.6, master 节点:服务器为 4C8G,公网 IP:124.222.61.xxx node1节点:服…

    Java 2023年6月8日
    085
  • 二、在SSM框架中简单使用mybatis

    1.要使用mybatis,首先准备配置文件。 本文以idea的Maven为例 1.将以下依赖项导入Maven项目中的pom.xml 2.在项目的Src/main/resources…

    Java 2023年5月29日
    086
  • 通过实现Runnable接口创建线程过程中的底层机制——设计模式(代理模式)

    这段代码该怎么理解呢,一个最简单的Thread方法 java;gutter:true;class Threads implements Runnable{//在这里Threads相…

    Java 2023年6月8日
    079
  • 2021/1/28

    #include <bits/stdc++.h> using namespace std; string a,b; int maxl[1001][1001]; int …

    Java 2023年6月5日
    079
  • Vue初探

    MVVM模型 M:模型(Model) :对应 data 中的数据 V:视图(View) :模板(理解为html页面) VM:视图模型(ViewModel) : Vue 实例对象 数…

    Java 2023年6月9日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球