Nginx-location匹配规则

每次配置Nginx的时候,不是多个这匹配不上就是那匹配不上,多个斜线少个斜线的,然后头疼,尤其多层代理之后,真是疯狂掉头发

正则匹配
uri
location匹配
正则匹配
全路径匹配
资源
静态资源
proxy_pass 代理接口
http://ip:port
http://ip:port/xx
http://ip:port/xx/

location匹配规则

ps: 一帮情况下我们不会用到太复杂的正则匹配的。

  1. = 全路径匹配。
  2. ~ 用于表示uri包含正则表达式,并且区分大小写。
  3. ~* 用于表示uri包含正则表达式,并且不区分大小写
  4. ^~ 用于不含正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location,立即使用此location 处理请求,而不再使用location中的正则uri 和请求字符串匹配。

proxy_pass 代理接口

  1. http://ip:port 如果是这种情况,会将location的内容追加到http://ip:port
http://192.168.10.211/api/fdsdsdds
客户端
Nginx
location配置
/api/
最终代理结果为
proxy_pass配置
http://192.168.10.211:7001
http://192.168.10.211:7001/api/fdsdsdds
  1. http://ip:port/xx 如果是这种情况,会将location的匹配到的内容删除掉,然后把剩余的部分拼接到http://ip:port/xx
http://192.168.10.211/api/fdsdsdds
客户端
Nginx
location配置
/api/
最终代理结果为
proxy_pass配置
http://192.168.10.211:7001/A
http://192.168.10.211:7001/Afdsdsdds
  1. http://ip:port/xx/ 如果是这种情况,会将location的匹配到的内容删除掉,然后把剩余的部分拼接到http://ip:port/xx/
http://192.168.10.211/api/fdsdsdds
客户端
Nginx
location配置
/api/
最终代理结果为
proxy_pass配置
http://192.168.10.211:7001/A/
http://192.168.10.211:7001/A/fdsdsdds
  1. 同理说下location配置后缀和不配置后缀的区别其实只要proxy_pass 端口后跟location中匹配到的就会删除掉,只是删除掉的和proxy_pass加到一起形成完整的URL能不能访问到你要代理的资源,对你没看错,是追加的**//**,但是这个路径是可以识别的
http://192.168.10.211/api/fdsdsdds
客户端
Nginx
location配置
/api
最终代理结果为
proxy_pass配置
http://192.168.10.211:7001/A/
http://192.168.10.211:7001/A//fdsdsdds

可以删除掉proxy_pass 中最后一个**/**

http://192.168.10.211/api/fdsdsdds
客户端
Nginx
location配置
/api
最终代理结果为
proxy_pass配置
http://192.168.10.211:7001/A
http://192.168.10.211:7001/A/fdsdsdds

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/711764.shtml

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

相关文章

Linux——进程控制(一)进程的创建与退出

目录 一、进程创建 1.写时拷贝 2.创建多个进程 二、进程终止 1.main函数的返回值 2.bash中的$? 3.自定义退出码 4.C语言的错误码 5.错误码与退出码的区别 6.代码异常终止 7.exit函数 8.总结 一、进程创建 在之前,我们学过linux中的非常重要的函数——…

Git 将dev1.0分支的某些commit合并到dev分支上

前言:dev1.0是新开发的需求内容,但是部分热更内容在此分支提交,如今需要把热更的内容发到dev环境,但是dev1.0新需求未开发完毕,不可更新到dev环境。 现在在dev1.0分支 git pull #拉取当前分支最新内容git log #查看最…

3. 文字阴影

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>文字阴影</title><style>*{margin: …

速卖通店铺营销秘籍:如何巧妙运用活动提升转化率

对于速卖通卖家而言&#xff0c;想要提升店铺的成交率&#xff0c;除了依赖付费推广外&#xff0c;更重要的是如何通过店铺营销来吸引和留住潜在买家。今天&#xff0c;我们就来深入探讨一下速卖通店铺营销的几个关键策略。 首先&#xff0c;我们要明确一点&#xff0c;速卖通平…

IDEA中的Structure模块使用详解

IDEA中的Structure模块使用详解 类方法的展示 从左往右介绍&#xff1a; 1、最开头的 m 标识是表示为方法&#xff0c;如出现 f 标识则表示为属性&#xff1b; 2、m后面跟着的是方法或者属性的访问修饰符&#xff1a; #红色关闭的锁表示为private&#xff1b; #圆圈表示不带…

使用Docker搭建一款实用的个人IT工具箱——It-Tools

作为程序员&#xff0c;在日常工作中&#xff0c;需要借助一些工具来提高我们工作效率&#xff0c;IT-Tools是为开发人员度身打造的一套便捷在线工具。它提供全面功能&#xff0c;使开发者能以更高效方式完成任务。经由IT-Tools&#xff0c;开发人员能轻松应对各类技术挑战&…

qt QRadioButton 及QButtonGroup 使用

QRadioButton 放在组合框QGroupBox中&#xff0c;再点击时&#xff0c;即使有多个QRadioButton按钮&#xff0c;同时选中的也就只有一个。 如下图所示&#xff0c; 对于多个QRadioButton&#xff0c;每个按钮都写一个槽函数是不太明智的选择&#xff0c;需要将QRadioButton放在…

海外服务器ping丢包怎么办?

一般跨境企业比如说跨境电商、游戏等等都会有海外各个节点服务器的需求&#xff0c;包括对海外服务器的需求。当使用海外服务器时 &#xff0c;难免会出现一些问题&#xff0c;比如说丢包。那么&#xff0c;当海外服务器丢包的话&#xff0c;该如何处理呢&#xff1f; 说到丢包…

「MySQL」增删查改

在操作数据库中的表时&#xff0c;需要先使用该数据库&#xff1a; use database;新增 创建表 先用 use 指定一个数据库,然后使用 create 新增一个表 比如建立一个学生表 mysql> use goods; mysql> create table student(-> name varchar(4),-> age int,-> …

Compose 介绍

Compose 介绍 Android Compose 是 Google 官方推出的用于构建原生 Android UI 的现代工具包。它使用 Kotlin 语言编写&#xff0c;可以帮助开发人员更轻松、更快速地创建精美、响应式和高性能的 Android 应用。 Compose 的优势 声明式 UI&#xff1a; Compose 使用声明式 UI…

IIS部署.Net 7项目

&#x1f468; 作者简介&#xff1a;大家好&#xff0c;我是Taro&#xff0c;前端领域创作者 ✒️ 个人主页&#xff1a;唐璜Taro &#x1f680; 支持我&#xff1a;点赞&#x1f44d;&#x1f4dd; 评论 ⭐️收藏 文章目录 前言一、发布项目二、解决发布失败1.发布失败2.托管…

深入理解计算机系统笔记

1.1 嵌套的数组 当我们创建数组的数组时&#xff0c;数组分配和引用的一般原则也是成立的。 例如&#xff0c;声明 int A[5][3]; 等价于下面的声明 typedef int row3_t[3]; row3_t A[5] 要访问多维数组的元素&#xff0c;编译器会以数组起始为基地址&#xff0c; (可能需…

【Ai生态开发】Spring AI上架,打造专属业务大模型,AI开发再也不是难事!

大家好 这里是苏泽 后端是工作 ai是兴趣 对于ai的产生我的立场是拥抱ai的 是希望拿他作为提升能力的工具 那么这一篇带大家来学习如何使用ai打造一个专属的业务大模型 需求 就是说假设现在有一个 商城系统 里面有查询订单的api和获取商品购买方式的api 用户只需要输入 “…

C++二叉搜树的实现(递归和非递归)

目录 1.什么是二叉搜索树 2.二叉搜索树的查找 3.二叉搜索树插入 4.二叉搜索树的删除 1.删除的节点只有左子树或者右子树 2.删除节点左右子树都有的情况 5.代码 1.什么是二叉搜索树 左节点的值小于根节点 右节点大于根节点 左右子树也满足上面两个条件 例&#xff1a;…

平台工程与安全

平台工程不是为了取代DevOps&#xff0c;而是DevOps的进一步演进和发展。本文介绍了DevOps和平台工程&#xff0c;以及对于安全的意义。原文: Platform Engineering and Security: A Very Short Introduction 中国云南大理的日落 我是一名 DevOps 工程师&#xff0c;个人还是希…

c# 调用存储过程

1.调用返回OUT的存储过程 a.调用OUT字符串的存储过程&#xff1b; #region 连接数据库/// <summary>/// 连接数据库/// </summary>/// <param name"connStatus"></param>/// <param name"dbNode"></param>/// <ret…

Android WebView访问网页+自动播放视频+自动全屏+切换横屏

一、引言 近期&#xff0c;我发现电视家、火星直播等在线看电视直播的软件都已倒闭&#xff0c;而我奶奶也再无法通过这些平台看电视了。她已六十多岁&#xff0c;快七十岁啦。这些平台的倒下对我来说其实没有多大的影响&#xff0c;但是对于文化不多的她而言&#xff0c;生活中…

Linux下的时间同步,以及ntp时间服务器配置流程

Linux下的时间同步&#xff0c;以及ntp时间服务器配置流程 概论常见时间操作命令Linux下的系统时间配置Linux硬件的时间的设置系统时间和硬件时间的同步NTP服务器时间的同步NTP服务的安装NTP的时间同步定时任务里的时间同步配置文件同步时间 概论 但在Linux下&#xff0c;系统…

SpringBoot中间件简介

Spring Boot是一个Java框架&#xff0c;它提供了一系列中间件来简化应用程序的开发和集成。以下是一些常见的Spring Boot中间件&#xff1a; Web中间件&#xff1a; Servlet容器&#xff08;内嵌Tomcat、Jetty或Undertow&#xff09; Spring MVC&#xff08;用于构建Web应用程…

HBuilderX创建uniapp项目使用 tailwindcss

文章目录 一、创建package.json文件二、打开终端 yarn / npm 安装依赖三、创建 vue.config.js文件四、创建postcss.config.js文件五、创建tailwind.config.js文件六、App.vue文件的style中引入tailwindcss 一、创建package.json文件 {"devDependencies": {"aut…