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

nginx 路径匹配,关于“/“对规则的影响

1、基本规则

假如后端实际地址为:

http://127.0.0.1:8080/api/user/getById?id=123

则:

1)通过nginx转发,使用http://127.0.0.1/api/user/getById?id=123访问

server {listen       80;server_name  127.0.0.1;location /api/ {proxy_pass http://127.0.0.1:8080;}}

通过原有地址直接准发非常简单。

2)通过nginx转发,使用http://127.0.0.1/test/api/user/getById?id=123访问

server {listen       80;server_name  127.0.0.1;location /test/ {proxy_pass http://127.0.0.1:8080/;}}

这里相当于对请求添加了前缀,但在转发的过程中是没有前缀的,故需要去掉。关键点就是地址后面的 "/"

2.关于斜杆"/"的案例对比

以服务地址http://127.0.0.1:8080/api/user/getById进行说明,访问地址是http://127.0.0.1/api/user/getById。location后斜杆与proxy_pass后斜杆问题如下:

1)location、proxy_pass都不加斜杠

location /api {proxy_pass http://127.0.0.1:8080;
}

实际代理地址:http://127.0.0.1:8080/api/user/getById。正确的

2)location加斜杠,proxy_pass不加斜杠

location /api/ {proxy_pass http://127.0.0.1:8080;
}

实际代理地址:http://127.0.0.1:8080/api/user/getById。正确的

3)location不加斜杠,proxy_pass加斜杠

location /api {proxy_pass http://127.0.0.1:8080/;
}

实际代理地址:http://127.0.0.1:8080//user/getById。错误的,也出现了双斜杠

4)location、proxy_pass都加斜杠

location /api/ {proxy_pass http://127.0.0.1:8080/;
}

实际代理地址:http://127.0.0.1:8080/user/getById

5)location不加斜杠,proxy_pass加"api"

location /api {proxy_pass http://127.0.0.1:8080/api;
}

实际代理地址:http://127.0.0.1:8080/api/user/getById。正确的

6)location加斜杠,proxy_pass加"api"

location /api/ {proxy_pass http://127.0.0.1:8080/api;
}

实际代理地址:http://127.0.0.1:8080/apiuser/getById。错误的,少了一个斜杆

7)location不加斜杠,proxy_pass加"api/"

location /api {proxy_pass http://127.0.0.1:8080/api/;

实际代理地址:http://127.0.0.1:8080/api//user/getById。这种情况会出现双斜杠问题,后端在认证请求时会校验失败。

8)location加斜杠,proxy_pass加"api/"

location /api/ {proxy_pass http://127.0.0.1:8080/api/;
}

实际代理地址:http://127.0.0.1:8080/api/user/getById。正确的

可以看出,两者加不加斜杆的区别还是很大的,不同的场景使用不同的配置即可。简单的,要么都不加,这样转发的地址是对应的。

相关文章:

nginx 路径匹配,关于“/“对规则的影响

1、基本规则 假如后端实际地址为: http://127.0.0.1:8080/api/user/getById?id123 则: 1)通过nginx转发,使用http://127.0.0.1/api/user/getById?id123访问 server {listen 80;server_name 127.0.0.1;location /api…...

安全知识见闻-网络安全热门证书

一、OSCP(Offensive Security Certified Professional) 1. 证书介绍 2.考点 3.部分考试要求 4.练习方法 二、OSEP(Offensive Security Exploit Developer) 1.证书介绍 2.考点 3.练习方法 三、CISSP(Certified lnformation Systems Security Professional&a…...

Pandabuy事件警示:反向海淘品牌如何规避风险

Pandabuy,作为一个曾经备受海外消费者青睐的跨境电商平台,以其丰富的商品种类、优质的服务和便捷的购物流程迅速崛起。然而,近期的一系列丑闻,尤其是涉嫌销售大量仿制名牌运动鞋的事件,让Pandabuy陷入了前所未有的信任…...

【纯血鸿蒙】安装hdc工具

这里我先写Mac版的,Windows的在下面 首先要知道你的SDK安装在哪里了,不知道的话,可以打开DevEco Studio,打开设置页面里的HarmonyOS SDK,这个我们之前配置环境变量的时候用过。 其实主要是用到这里toolchains下的hdc命令。 所以我们需要配置环境变量。 1、打开Mac下的…...

TensorFlow面试整理-给定一个任务(如图像分类、文本分类),如何从头构建一个TensorFlow模型?

构建一个 TensorFlow 模型来执行图像分类或文本分类任务的步骤基本类似,虽然数据类型不同,但核心流程相同。以下将以 图像分类任务 和 文本分类任务 为例,展示如何从头构建 TensorFlow 模型,覆盖数据预处理、模型构建、编译、训练和评估的完整流程。 一、图像分类任务:从头…...

unity中出现一些莫名其妙的问题

问题现象:一个功能昨天测试还正常的今天突然不能用了,而且关于这个功能的代码都没调整过。 原因:相关逻辑上存在异常代码,可能是别人提交的代码运行中有异常未处理导致 处理办法:解决异常 查找哪些位置使用了该异常脚本…...

Python爬虫-汽车投诉排行榜单数据

前言 本文是该专栏的第40篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某汽车平台为例,通过python采集其“汽车投诉排行”榜单数据。具体的实现思路以及完整实现代码逻辑,笔者将在正文为你详细介绍。废话不多说,跟着笔者直接往下看正文详细内容。(附带完整代码…...

[C++][数据结构][哈希表]详细讲解

目录 1. 哈希概念 2.哈希冲突 3.哈希函数 4.哈希冲突解决 4.1闭散列 4.1.1何时扩容?如何扩容? 4.1.2线性探测 4.1.3二次探测 4.2开散列(哈希桶) 4.2.1概念 4.2.2开散列增容 1. 哈希概念 顺序结构以及平衡树中,元素关键码与其存储…...

Android Gradle

#1024程序员节|征文# Gradle 是一款强大的自动化构建工具,广泛应用于 Android 应用开发。它通过灵活的配置和丰富的插件系统,为项目构建提供了极大的便利。本文只是简单的介绍 Gradle 在 Android 开发中的使用,包括其核心概念、构…...

Vue2自定义指令及插槽

这里写目录标题 自定义指令基础语法指令的值封装v-loading指令 插槽默认插槽后备内容(插槽的默认值)具名插槽作用域插槽 自定义指令 自定义指令:自己定义的指令,封装一些dom操作,扩展额外功能 基础语法 全局注册&am…...

【Qt】系统相关——多线程、Qt多线程介绍、常用函数、线程安全、网络、UDP Socket、TCP Socket

文章目录 Qt系统相关1. 多线程1.1 Qt多线程介绍1.2 常用函数1.3 线程安全 2. 网络2.1 UDP Socket2.2 TCP Socket Qt 系统相关 1. 多线程 1.1 Qt多线程介绍 QThread 代表一个在应用程序中可以独立控制的线程,它还可以和进程中的其他线程共享数据。QThread 对象管理…...

1GS/s 4通道14bit PCIE采集卡

1GS/s 4通道14bit PCIE采集卡是一款同时具备直流耦合程控放大器和双极性宽带信号输入的高速数据采集卡。板载FPGA具备实时信号处理能力,这些特性使其成为激光雷达、光纤传感、粒子物理等应用领域进行信号采集和分析的理想工具。提供快速的PCI Express 3.0 x8数据传输…...

动态IP是什么?

随着互联网成为人们生活的重要组成部分,以信息传递为主导的时代种,网络连接质量对我们的工作效率、学习进度以及娱乐体验等方面都有很大影响。 动态IP,作为网络连接中的一种重要IP代理形式,越来越受到用户的欢迎。本文将深入解析…...

51单片机完全学习——红外遥控

一、红外接收模块原理 红外接收头内部本身有一个反相,意思就是:平时发送方无信号时接收到的是1,发送方有发送载波时接收头引脚输出的是0,写代码的时候注意这一点。红外协议,你也可以理解成,他对0和1重新做…...

群控系统服务端开发模式-应用开发-业务架构逻辑开发BaseAPI

一、加密工具开发 首先在根目录下extend文件中创建Encipher文件夹&#xff0c;用于专门开发加解密工具&#xff0c;新建RSA算法控制器并命名为Encrypt.php。然后在根目录下config文件夹中创建rsa.php文件&#xff0c;用于配置RSA算法参数。 1、秘钥生成算法 <?php /*** RS…...

【AI日记】24.10.27 了解AI的未来

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 工作1 内容&#xff1a;挑选AI大佬的访谈&#xff0c;跳着看了几个时间&#xff1a;2小时 工作2 内容&#xff1a;OpenAI Sam Altman最新访谈&#xff1a;GPT-4o和AI未来 2024.5时间&#xff1a;2小时收…...

【时间之外】IT人求职和创业应知【19】

认知决定你的赚钱能力。以下是今天可能影响你求职和创业的热点新闻&#xff1a; 今日关键字&#xff1a;深圳长沙&#xff08;备注&#xff1a;我都没有去过&#xff09; 2024中国&#xff08;长沙&#xff09;民营企业科技创新发展大会召开 内容概述&#xff1a; 2024年10月…...

MOE混合专家模型总结(面试)

目录 1. MOE介绍 2.MOE出现的背景 3.有哪些MOE模型 4.门控网络或路由 5.为什么门控网络要引入噪声 6.如何均衡专家间的负载 7.“专家”指什么 8.专家的数量对预训练有何影响 9.什么是topk门控 10.MOE模型的主要特点 11.MOE和稠密模型的对比 12.MOE的优势 13.MOE的挑…...

第8次CCF CSP认证真题解

1、最大波动 题目链接&#xff1a;https://sim.csp.thusaac.com/contest/8/problem/0 100分代码&#xff1a; #include <iostream> #include <algorithm> using namespace std; int main(int argc, char *argv[]) {int n;cin >> n;int a[1010];for(int i …...

2024昆明ICPC A. Two-star Contest(直观命名+详细注释)

Problem - A - Codeforces 思路&#xff1a; 按照等级排序&#xff0c;维护同等级最大评分&#xff0c;每个等级的总评分至少比其第前一个等级的最大评分大1分 吐槽&#xff1a; 思路不难&#xff0c;但坑好多&#xff0c;感觉全踩了一遍 坑&#xff1a;&#xff08;按解决…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场&#xff0c;但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大&#xff0c;传统架构已较难满足当前企业发展的需求&#xff0c;企业面临着三重挑战&#xff1a; ① 业务&#xff1a;国内用户访问海外服…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)

注&#xff1a;文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件&#xff1a;STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...

shell脚本质数判断

shell脚本质数判断 shell输入一个正整数,判断是否为质数(素数&#xff09;shell求1-100内的质数shell求给定数组输出其中的质数 shell输入一个正整数,判断是否为质数(素数&#xff09; 思路&#xff1a; 1:1 2:1 2 3:1 2 3 4:1 2 3 4 5:1 2 3 4 5-------> 3:2 4:2 3 5:2 3…...