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.mzph.cn/news/84988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一个C库函数-#1-memset()

每日一个C库函数-#1-memset() 来源 C 标准库 - <string.h> 声明 void *memset(void *str, int c, size_t n);str&#xff1a;要填充的内存块&#xff1b;c&#xff1a;要被设置的值&#xff08;以何值填充&#xff09;。该值以 int 形式传递&#xff0c;填充内存块时…

读HDF5格式的文件

这里写自定义目录标题 HDF格式简介python读取HDF文件 HDF格式简介 HDF&#xff08;Hierarchical Data Format&#xff09;指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。其中Hierarchical是层级结构的意思&#xff0c;也就是说&#xff0c;HDF的文件结构是分层…

Vim编辑器使用入门

目录 一、Vim 编辑器基础操作 二、Vim 编辑器进阶操作 三、Vim 编辑器高级操作 四、Vim 编辑器文件操作 五、Vim 编辑器文件管理 六、Vim 编辑器进阶技巧 七、Vim 编辑器增强功能 Vim的三种工作模式 一、Vim 编辑器基础操作 1.移动光标 - 光标的移动控制 移动光标有两…

计算机网络常见面试题

目录 一、谈一谈对OSI七层模型和TCP/IP四层模型的理解&#xff1f; 答&#xff1a;OSI七层模型主要分为&#xff1a; TCP/IP四层协议&#xff1a; 二、谈谈TCP协议的3次握手过程&#xff1f; 三、TCP协议为什么要3次握手&#xff1f;2次&#xff0c;4次不行吗&#xff1f; …

微信这样的加人方式,既安全又解放双手

在当今竞争激烈的市场环境下&#xff0c;如何高效地管理和运营私域流量成为企业发展的关键。 1.批量自动化加好友的优势 &#xff08;1&#xff09;提高效率&#xff1a;批量自动化添加好友功能可以帮助企业添加大量潜在客户或目标客户。相比手动逐个添加好友&#xff0c;自动…

嵌入式Linux驱动开发(I2C专题)(七)

使用GPIO操作I2C设备_IMX6ULL 参考资料&#xff1a; Linux文档 Linux-5.4\Documentation\devicetree\bindings\i2c\i2c-gpio.yamlLinux-4.9.88\Documentation\devicetree\bindings\i2c\i2c-gpio.txt Linux驱动源码 Linux-5.4\drivers\i2c\busses\i2c-gpio.cLinux-4.9.88\driv…

spring boot 时间格式化输出

目录标题 一、spring boot 序列化二、 JsonFormat(pattern "yyyy-MM-dd HH:mm:ss")和JSONField(format "yyyy-MM-dd HH:mm:ss")区别三、在实体类中序列化时间&#xff08;格式化输出&#xff09;&#xff08;一&#xff09;使用JsonFormat&#xff08;二…

【校招VIP】产品基础知识之学习渠道

考点介绍&#xff1a; 产品经理是一项复合型的工作&#xff0c;需要学习掌握的知识很多&#xff0c;能否通过学习掌握并构建一套属于自己的产品知识体系&#xff0c;是成为一名优秀产品经理的重要条件。系统化学习方法&#xff0c;可以分为以下6个步骤&#xff1a; 1、明确的学…

robotframework在Jenkins执行踩坑

1. Groovy Template file [robot_results.groovy] was not found in $JENKINS_HOME/email_template 1.需要在managed files 添加robot_results.groovy。这个名字需要和配置在构建项目里default content一致&#xff08;Extended E-mail Notification默认设置里Default Content…

如何利用物联网技术打造新型智能餐饮连锁店

中国是美食大国&#xff0c;餐饮美食的消费需求庞大&#xff0c;随着餐饮产业的标准化、规模化发展&#xff0c;餐饮店的连锁化率在持续上升&#xff0c;许多餐饮知名品牌都开设了成百上千家连锁店。随着餐饮连锁店数量的增加&#xff0c;对品牌店铺的管理和运营难度也日益增长…

【C语言】字符函数和字符串函数(含模拟)

前言&#xff1a; 在做OJ题或阅读代码时或多或少会遇到一些字符函数和字符串函数&#xff0c; 如果不认识或不熟悉就会造成不便&#xff0c; 本篇文章主要是为了这方面而存在&#xff0c; 此篇介绍各个字符串的功能与使用方法&#xff0c; 下一篇会讲解如何模拟这些函数 重点&a…

Java 初学者必备核心基础知识有哪些?

Java SE基础-->Java Web-->Maven-->Git-->SSM框架 -->MybatisPlus-->Spring Boot-->传智健康【医疗行业】--> Spring Cloud-->Dubbo-->Zookeeper-->RabbitMQ-->RocketMQ-->Docker-->Redis -->MongoDB-->搜索技术Elasticsearch…

Nginx核心要领十五:离线安装Nginx

写这边文章的原因是上线环境被扫描出两个漏洞 1.SSL/TLS协议信息泄漏漏洞&#xff08;CVE-2016-2183&#xff09;原理扫描 1.1.需要修改算法&#xff1a;ssl_ciphers HIGH:!aNULL:!MD5:!3DES; 2.Nginx安全漏洞&#xff08;CVE-2021-23017&#xff09; 2.1.需要升级OpenSSL版本…

大模型从入门到应用——LangChain:代理(Agents)-[计划与执行]

分类目录&#xff1a;《大模型从入门到应用》总目录 LangChain系列文章&#xff1a; 基础知识快速入门 安装与环境配置链&#xff08;Chains&#xff09;、代理&#xff08;Agent:&#xff09;和记忆&#xff08;Memory&#xff09;快速开发聊天模型 模型&#xff08;Models&…

javax.validation.constraints校验

这个必须配合Validated 使用 三者都得不为null (没有参数传过来即为null ) notNull 可以为空白或空格(长度不限) NotEmpty 长度要大于0 (可以为空格,因为空格也有长度) NotBlank 只能用在 string &#xff0c;并且去掉空格之后要大于0

软件测试商城项目优惠券超发问题该怎么测试?

【2023性能测试完整版】这可能是B站讲得最好的软件测试课程&#xff08;Jmeter 接口测试实战 Loadrunner Tomcat综合教程&#xff09;软件测试面试、自动化测试。 在拼夕夕面试中&#xff0c;面试官问了一连串经典的问题&#xff1a;“优惠券库存是怎么扣减的&#xff1f;开发为…

k8s-2 集群升级

首先导入镜像到本地 然后上传镜像到仓库 在所有集群节点 部署cri-docker k8s从1.24版本开始移除了dockershim&#xff0c;所以需要安装cri-docker插件才能使用docker 配置cri-docker 升级master 节点 升级kubeadm 执行升级计划 修改节点套接字 腾空节点 升级kubelet 配置k…

通过conda创建纯净Python环境

参考conda create 怎么创建纯净的 Python3.6 环境&#xff1f; 创建一个干净的python3.10的环境&#xff1a; 当前目录下创建一个environment.txt文件&#xff0c;写入&#xff1a; EXPLICIT https://repo.anaconda.com/pkgs/main/linux-64/python-3.10.13-h955ad1f_0.tar.bz…

Spring相关

spring工作原理简单介绍循环依赖问题spring/spring boot启动加载过程 ?springboot是怎么运行起来的 使用springboot的好处是什么?描述下spring的ioc和aopspring task是怎么实现的?spring事务你是怎么用的?加了@Transcational注解spring都做了哪些工作?怎么知道事务执行成功…

uniapp瀑布流布局写法

首先我们要清楚瀑布流是什么&#xff1f; 瀑布流布局&#xff08;Waterfall Flow Layout&#xff09;&#xff0c;也称为瀑布流式布局&#xff0c;是一种常见的网页或移动应用布局方式&#xff0c;特点是元素以不规则的方式排列&#xff0c;就像瀑布中的流水一样&#xff0c;每…