当前位置: 首页 > news >正文

Nginx location 精准匹配URL = /

Location是什么?


Location是Nginx中的块级指令(block directive),通过配置Location指令块,可以决定客户端发过来的请求URI如何处理(是映射到本地文件还是转发出去)及被哪个location处理。

匹配模式

分为两种模式:

  • 绝对匹配:调用的请求Path固定为创建时填写的API请求Path。
  • 前缀匹配:调用的请求Path将以创建时填写的API请求Path为前缀,支持接口定义多个不同Path。

    例如,请求路径为/test/AA,使用前缀匹配时,通过/test/AA/CC可以访问,但是通过/test/AACC无法访问。

说明:

使用前缀匹配时,匹配剩余的路径将透传到后端。

例如,使用前缀匹配,前端请求路径定义为/test/,后端请求路径定义为/test2/,通过/test/AA/CC访问API,则后端收到的请求url为/test2/AA/CC。

 

之前介绍的是location的root和index,root设置的是你所服务的根目录,而index是设置当前目录的首页。

默认首页就是在你输入完url之后,不再输入具体页面的时候默认显示。

上面这种方式的配置会发生冲突。可以如下写法,写上=号。当写上=号之后,=号之后接上路径,那么这个路径就一定要在用户访问的时候将其写全。

        location / {root html;index index.html;}location =/dist {root /usr/local/nginx/html;index index.html index.htm;}

 

 

 精确匹配


location = /index.html { […]    
}
默认是/,即所有的资源都跑到/下面去找,这样速度比较慢,可以直接定位location=/index.htmllocation = /abcd {[…]    
}http://website.com/abcd匹配,其他的如http://website.com/abcd/,http://website.com/abcde都是不匹配的会返回404
  • 如果有子文件夹 =/xxx,那么文件夹就是xxx,文件夹建立之后就可以在该文件夹下面进行相应的访问。
  • 如果不建立子文件夹,那么想要在=号之后写上具体的页面。

在写完前面的IP地址之后,如果后面接的是index.html,那么就是访问是/usr/local/nginx/html/dist这个目录下面的index指令下的index.html

        location =/index.html {root /usr/local/nginx/html/dist;index index.html index.htm;}

表示带了斜杠之后,后面是什么无所谓,只要后面不接/index.html就行,如果接了,那么访问的就是下面的。

        location / {root html;index index.html;}

可以看到后面接上index.htm访问的是dist目录下面的index.html   匹配到 location =/index.html

如果访问的是test.html那么匹配的是location /

通过上面可以看出 / 和=/xxx是两个完全不同的含义,当写=号表示这个url能够完全匹配就进入location里面。如果不能完全匹配就去找有没有类似location后面接/的。

同时两个location的根本区别在于root的访问路径是不一样的。一个服务的路径是html,一个是/usr/local/nginx/html。

location = /xxxxx 表示只有在访问的时候写成完全和location后面url完全匹配才会进入到相应的配置里面,否则找个泛泛可以匹配的location。

不写=的location属于泛泛的,location /表示只要在当前的IP地址后面加个斜杠/,后面无论写什么,只要别写和精确匹配路径吻合的,那么就能够匹配到。

http://www.lryc.cn/news/173251.html

相关文章:

  • 使用JAXB将Java对象转xml
  • Atlas 200 DK开发板问题总结
  • uniapp——实现二维码生成+保存二维码图片——基础积累
  • 零基础学前端(六)重点讲解 JavaScript
  • 数据库问题记录(粗略版)oracle、mysql等主流数据库通用
  • ORACLE多列中取出数据最大的一条
  • Xamarin.Android实现App内版本更新
  • 运维工程师面经
  • stm32之智能垃圾桶实战
  • 【C++面向对象侯捷下】2.转换函数 | 3.non-explicit-one-argument ctor
  • UOS Deepin Ubuntu Linux 开启 ssh 远程登录
  • Postman应用——接口请求和响应(Get和Post请求)
  • Linux查看哪些进程占用的系统 buffer/cache 较高 (hcache,lsof)命令
  • (Vue2)自定义创建项目、ESLint、Vuex
  • LLaMa
  • API(九)基于协程的并发编程SDK
  • JavaWeb 学习笔记 7:Filter
  • 【AI视野·今日Robot 机器人论文速览 第三十五期】Mon, 18 Sep 2023
  • Elasticsearch 在bool查询中使用分词器
  • 在Python中创建相关系数矩阵的6种方法
  • 物联网、工业大数据平台 TDengine 与苍穹地理信息平台完成兼容互认证
  • this.$nextTick()的使用场景
  • idea(第一次)启动项目,端口变成了8080
  • brpc 学习(一)M1 MacOS构建方法
  • Python 与 Qt c++ 程序共享内存,传递图片
  • 【2023年中国研究生数学建模竞赛华为杯】E题 出血性脑卒中临床智能诊疗建模 问题分析、数学模型及代码实现
  • 2024字节跳动校招面试真题汇总及其解答(五)
  • 如何撤销某个已经git add的文件以及如何撤销所有git add提交的文件?
  • JVM高级性能调试
  • APK的反编译,签名,对齐