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

Nginx专题--反向代理(未完成)

反向代理
  正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

反向代理:其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了

反向代理的几个标签

标签指令-location

loacation 匹配顺序
1)location 匹配格式规则前缀有如下几种:
= 开头:表示精确匹配
^~ 开头:注意这不是一个正则表达式,它的目的是优于正则表达式的匹配;如果该 location 是最佳匹配,则不再进行正则表达式检测。
~ 开头:表示区分大小写的正则匹配;
~* 开头:表示不区分大小写的正则匹配
!~ && !~*:表示区分大小写不匹配的正则和不区分大小写的不匹配的正则
2)location 如果不带前缀就是普通字符串匹配,比如:
/uri/ 普通字符串匹配
/ 绝对路径根目录匹配,如果没有其它匹配,任何请求都会匹配到
3)匹配的搜索顺序优先级如下(从上到下优先级依次递减):
注意:
当有匹配成功时,立刻停止匹配,按照当前匹配规则处理请求
优先搜索并不意味着优先命中!
字符串匹配优先搜索,但是只是记录下最长的匹配 ( 如果 ^~ 是最长的匹配,则会直接命中,停止搜索正则 ),然后继续搜索正则匹配,如果有正则匹配,则命中正则匹配,如果没有正则匹配,则命中最长的字符串匹配。

首先匹配 =
其次匹配 ^~
再其次按照配置文件的顺序进行正则匹配
最后是交给 / 进行通用匹配

(location =) > (location 完整路径) > (location ^~ 路径) > (location ,* 正则顺序) > (location 部分起始路径) > (/)
4)location 是否以“/”结尾
在 ngnix 中 location 进行的是模糊匹配
没有“/”结尾时,location/abc/def 可以匹配 /abc/defghi 请求,也可以匹配 /abc/def/ghi 等
而有“/”结尾时,location/abc/def/ 不能匹配 /abc/defghi 请求,只能匹配 /abc/def/anything 这样的请求

标签指令–proxy_pass

proxy_pass 代理规则(是否以“/”结尾)
(1)配置 proxy_pass 时,当在后面的 url 加上了 /,相当于是绝对路径,则 Nginx 不会把 location 中匹配的路径部分加入代理 uri。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qFeSCTj6-1690195783164)(vx_images/165721769748951.png)]
比如下面配置,我们访问 http://IP/proxy/test.html,最终代理到 URL 是 http://127.0.0.1/test.html
原文:Nginx - 反向代理location与proxy_pass配置规则总结(附样例)
(2)如果配置 proxy_pass 时,后面没有 /,Nginx 则会把匹配的路径部分加入代理 uri。
比如下面配置,我们访问 http://IP/proxy/test.html,最终代理到 URL 是 http://127.0.0.1/proxy/test.html

原文:Nginx - 反向代理location与proxy_pass配置规则总结(附样例)

标签指令–proxy_set_header

Nginx proxy_set_header:即允许重新定义或添加字段传递给代理服务器的请求头。该值可以包含文本、变量和它们的组合
在没有定义proxy_set_header时会继承之前定义的值。默认情况下,只有两个字段被重定义:

proxy_set_header Host $proxy_host;
proxy_set_header Connection close;

如果启用缓存,来自之前请求的头字段“If-Modified-Since”, “If-Unmodified-Since”, “If-None-Match”, “If-Match”, “Range”, 和 “If-Range” 将不会被代理服务器传递。
一个不会变化的“Host”头请求字段可通过如下方式被传递:

proxy_set_header Host       $http_host;

然后,当字段不在请求头中就无法传递了,在这种情况下,可通过设置Host变量,将需传递值赋给Host变量

proxy_set_header Host $host;
此外,服务器名称和端口一起通过代理服务器传递

proxy_set_header Host       $host:$proxy_port;

如果请求头的存在空的字段将不会通过代理服务器传递

proxy_set_header Accept-Encoding "";

简而言之,proxy_set_header 就是可设置请求头-并将头信息传递到服务器端,不属于请求头的参数中也需要传递时,重定义下即可!

相关文章:

Nginx专题--反向代理(未完成)

反向代理   正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。 反向代理:其实客户端对代理是无感知的&…...

什么是搜索引擎?2023 年搜索引擎如何运作?

目录 什么是搜索引擎?搜索引擎的原理什么是搜索引擎爬取?什么是搜索引擎索引?什么是搜索引擎检索?什么是搜索引擎排序? 搜索引擎的目的是什么?搜索引擎如何赚钱?搜索引擎如何建立索引?网页抓取文本处理建…...

Spring系列一:spring的安装与使用

文章目录 💞 官方资料🍊Spring5下载🍊文档介绍 💞Spring5🍊内容介绍🍊重要概念 💞快速入门🍊Spring操作演示🍊类加载路径🍊Debug配置🍊Spring容器…...

Ubuntu--科研工具系列

翻译系列 pot-desktop github链接: https://github.com/pot-app/pot-desktop 下载deb Releases pot-app/pot-desktop GitHub 安装过程 在下载好的deb目录下打开终端(自动安装依赖) sudo apt install "XXX.deb" (后面可以直接托文件到终端&#…...

【压测指南|压力测试核心性能指标及行业标准】

文章目录 压力测试核心性能指标及行业标准指标1:响应时间指标2:吞吐量(TPS)指标3:失败率总结: 压力测试核心性能指标及行业标准 在做压力测试时,新手测试人员常常在看报告时倍感压力:这么多性能…...

spark-submit --files

一、原理 spark-submit --files通常用来加载外部资源文件,在driver和executor进程中进行访问 –files和–jars基本相同 二、使用步骤 2.1 添加文件 spark-submit --files file_paths 其中file_paths可为多种方式:file: | hdfs:// | http:// | ftp:// |…...

应该选云服务器还是物理服务器

应该选云服务器还是物理服务器 一、为什么需要云服务器或独立服务器取代共享主机 在最早之前,大多数的网站都是共享主机开始的,这里也包含了云虚拟机。这一类的站点还有其他站点都会共同托管在同一台服务器上。但是这种共享机只适用于小的网站&#xff…...

【iOS】动态链接器dyld

参考:认识 dyld :动态链接器 dyld简介 dyld(Dynamic Linker)是 macOS 和 iOS 系统中的动态链接器,它是负责在运行时加载和链接动态共享库(dylib)或可执行文件的组件。在 macOS 系统中&#xf…...

RocketMQ集成Springboot --Chapter1

RocketMQ集成Springboot 三种消息发送方式 生产者 引入依赖 <!--⽗⼯程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.2.RELEASE</version><…...

【Unity3D日常开发】Unity3D中比较string字符串的常用方法

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 字符串string的比较有很多方法&#xff0c;比如&#xff1a; …...

vue3+ts+element-plus 之使用node.js对接mysql进行表格数据展示

vue3tselement-plus axiosnode.jsmysql开发管理系统之表格展示 ✏️ 1. 新建一个node项目* 初始化node* 安装可能用到的依赖* 配置文件目录* 添加路由router1. 添加router.js文件&#xff0c;添加一个test目录2. 修改app.js ,引入router&#x1f4d2; 3. 启动并在浏览器打开 * …...

华为eNSP:isis配置跨区域路由

一、拓扑图 二、路由器的配置 1、配置接口IP AR1: <Huawei>system-view [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24 [Huawei-GigabitEthernet0/0/0]q AR2: [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.2 24 [Huawe…...

IUPAC和SMILES的相互转换

这种方法只能解决非常简单的转换&#xff0c;更难的SMILES之间应该是无法直接转换&#xff0c;我可能很多人都使用神经网络解决 &#xff0c;暂时还没仔细看&#xff0c;后面再仔细看吧... 简单的转换&#xff1a; import urllib.error import urllib.parse import urllib.re…...

逻辑回归概述

逻辑回归介绍 1. 逻辑回归的应用场景 逻辑回归(Logistic Regression)是机器学习中的 一种分类模型 ,逻辑回归是一种分类算法,虽然名字中带有回归。由于算法的简单和高效,在实际中应用非常广泛 广告点击率是否为垃圾邮件是否患病信用卡账单是否会违约 逻辑回归就是解决二…...

React 框架下自己写一个braft编辑器,然后将编辑器内容展示在网页端

1.首先自己写一个编辑器 输入文字&#xff1b; 支持选择表情&#xff1b; 可添加小程序链接&#xff1b;可添加网页链接&#xff1b;并且可以编辑删除&#xff1b;效果如下 2.输入完毕后&#xff0c;点击文本输入框保存&#xff0c;将便携式内容回显&#xff0c; 渲染时…...

基于DNN深度学习网络的OFDM+QPSK信号检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................................. Transmitt…...

学生管理系统-05封装选项卡

一、选项卡的添加 1、在router/index.js修改之前的动态添加二级路由的代码 router.addRoute("homeName",{ path:routeObj.path, component:()=>import(`@/views${routeObj.permission}.vue`), meta:{ name:routeObj.title …...

关于一些C++、Qt、Python方面的术语

杂鱼之前纯粹用python没细致理解过的术语整理一下&#xff0c;常看常新&#xff08; 定义 (Definition)&#xff1a; 定义是指给一个实体分配内存空间&#xff0c;以便在程序中使用。在C和Python中&#xff0c;这个实体可以是变量、函数或类。在C中&#xff0c;定义通常是在声…...

k8s中强制删除pv

K8s 集群内有一个已经不再使用的 PV&#xff0c;虽然已经删除了与其关联的 Pod 及 PVC&#xff0c;并对其执行了删除命令&#xff0c;但仍无法正常删除&#xff0c;一直处于 Terminating 状态&#xff1a; 解决办法&#xff1a; 1. 获取pv信息 kubectl get pv 2. 解除pv锁定 …...

60寸透明屏的透明度怎么样?

60寸透明屏是一种新型的显示屏技术&#xff0c;它具有透明度高、色彩鲜艳、清晰度高等特点&#xff0c;可以广泛应用于商业展示、户外广告、智能家居等领域。 首先&#xff0c;60寸透明屏的透明度高。 透明屏采用了特殊的材料和技术&#xff0c;使得屏幕在显示内容的同时&…...

告别Transformer的O(n²)烦恼:手把手带你用Mamba-2.0搭建一个长文本摘要模型

突破长文本处理瓶颈&#xff1a;基于Mamba-2.0的高效摘要系统实战指南 在当今信息爆炸的时代&#xff0c;我们每天都被海量文本内容包围——从学术论文、技术文档到商业报告&#xff0c;这些长文本的有效处理已成为知识工作者面临的核心挑战。传统基于Transformer的摘要系统虽然…...

Z-Image-GGUF开发者案例:集成至内部CMS系统,支持运营人员一键生成Banner

Z-Image-GGUF开发者案例&#xff1a;集成至内部CMS系统&#xff0c;支持运营人员一键生成Banner 1. 项目背景与挑战 想象一下这个场景&#xff1a;你是一家电商公司的运营人员&#xff0c;明天就是“618”大促了&#xff0c;你需要为50个不同的商品制作Banner图。设计团队已经…...

陶哲轩:AI让数学进入「工业化」时代,数学家也可以是「包工头」

来源&#xff1a;机器之心编辑&#xff1a;张倩、陈陈很多人提到数学研究&#xff0c;脑子里浮现的还是那个画面&#xff1a;一个人&#xff0c;一块白板&#xff0c;来回踱步&#xff0c;等灵感突然降临。但当今世界最伟大的数学家之一、菲尔兹奖得主陶哲轩却告诉我们&#xf…...

DXVK 2.7.1:Vulkan驱动的Direct3D转换层性能提升15%的技术突破

DXVK 2.7.1&#xff1a;Vulkan驱动的Direct3D转换层性能提升15%的技术突破 【免费下载链接】dxvk Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk 一、技术突破&#xff1a;从API翻译到性能…...

Claude Code + PromptX 实战:如何让AI像你的最佳实习生一样写代码

Claude Code PromptX 实战&#xff1a;如何让AI像你的最佳实习生一样写代码 在软件开发领域&#xff0c;AI辅助编程已经从概念验证阶段迈入了实际生产力阶段。Claude Code与PromptX的组合&#xff0c;为开发者提供了一个强大的"虚拟实习生"——它不会抱怨加班&#…...

Ruoyi-Vue3实战:10分钟搞定学生管理系统CRUD(附完整SQL)

Ruoyi-Vue3学生管理系统实战&#xff1a;从零到部署的完整指南 在当今快速迭代的开发环境中&#xff0c;选择高效的技术栈至关重要。Ruoyi-Vue3作为基于Spring Boot和Vue3的企业级开发框架&#xff0c;以其模块化设计和丰富的功能组件&#xff0c;成为快速构建管理系统的首选方…...

BinCmdParser:嵌入式二进制命令动态解析器

1. BinCmdParser&#xff1a;面向嵌入式通信的动态二进制命令解析器 在工业控制、传感器网络与跨平台设备互联场景中&#xff0c;串口/UART/SPI/I2C等低带宽物理通道常承载结构化二进制指令。传统固定帧格式&#xff08;如Modbus RTU、自定义8字节头4字节长度2字节CRC&#xff…...

Libero SoC v2021.1离线安装全攻略:从下载到IP核配置(附避坑指南)

Libero SoC v2021.1离线安装全攻略&#xff1a;从下载到IP核配置&#xff08;附避坑指南&#xff09; 在企业内网开发环境中&#xff0c;离线安装EDA工具往往面临诸多挑战。本文将手把手指导您完成Libero SoC v2021.1的完整离线部署流程&#xff0c;涵盖从安装包获取到IP核配置…...

十字头零件的机械加工工艺规程及工装夹具设计 (论文+CAD图纸+任务书+过程卡+工序卡+外文翻译+参考文献……)

十字头零件作为机械传动系统中的关键构件&#xff0c;其加工精度直接影响设备运行的稳定性与寿命。制定科学合理的机械加工工艺规程及配套工装夹具设计方案&#xff0c;是确保零件质量、提升加工效率的核心环节。工艺规程需系统规划从毛坯准备到成品检验的全流程&#xff0c;涵…...

探索kedro:数据科学项目的高效管理框架

探索kedro&#xff1a;数据科学项目的高效管理框架 【免费下载链接】kedro Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, ma…...