nginx(七十三)nginx与Location响应头细节探讨

news/2024/5/18 17:37:06/文章来源:https://blog.csdn.net/wzj_110/article/details/130535933

一   nginx与Location响应头细节探讨

①  重定向和Location回顾

多种重定向跳转方式的差异

nginx之absolute_redirect、server_name_in_redirect、port_in_redirect 共同控制Location响应头

②  STS响应头导致307重定向

++++++++++++++"第一次访问  http://www.baidu.com"++++++++++++++

观察点: 请求'https://www.baidu.com',并且返回'STS'安全响应头

++++++++++++++"第二次访问  http://www.baidu.com"++++++++++++++强调: 浏览器并没有发起'网络请求',而是浏览器'内部'给了一个'虚拟'响应进行重定向

思考:浏览器是'如何知道'这个'www.baidu.com这个域名'需要使用'严格传输安全 HSTS' 呢?答案:第一次重定向到'https://www.baidu.com',响应头中有一个'特殊'的响应头:Strict-Transport-Security: max-age=172800

+++++++++++++++++ "关键知识点" +++++++++++++++++1)'307' Internal Redirect2) Non-Authoritative-Reason: HSTS  --> "浏览器返回的虚拟响应头"备注: HSTS是HTTP严格传输安全协议'HTTP Strict Transport Security',简称:'HSTS'3) Strict-Transport-Security       --> "响应头"

浏览器自我进行307重定向 

1)打开地址: chrome://net-internals/#hsts2)查询域名,在"Query HSTS/PKP domain"输入'域名'

前端请求307导致CORS跨域失败  清除浏览器的HSTS记录

③  nginx的rewrite和return导致301或302重定向

1) '301'永久重定向return 301  https://www.baidu.comrewrite ^   https://www/aidu.com permanent2) '302'临时重定向return 302  https://www.baidu.comrewrite ^   https://www/aidu.com redirect

④  proxy_redirect 

说明: 修改上游的'Location'或'Refresh'响应头应用场景,修改'Location'组成部分:[1]、修改'协议'[2]、修改'域名'和'端口'[3]、修改'url'

案例参考  HTTP重定向 

解读: 1) 如果'replacement'省略'域名和端口'2) 则使用nginx'监听的协议,主域名(第一个),以及对应的监听端口'

解读:如果使用'default'参数,将根据'location'和'proxy_pass'参数的设置来决定细节:如果'redirect'与原始'Location'不匹配,则nginx什么'也不做'

++++++++++ 将上游服务器发出的'Location'中http协议修改为'https'协议 ++++++++++proxy_redirect http:// https://说明: 在'replacemnet'和'redirect'都可以使用'变量'

说明: 多个'proxy_redirect'指令时,依次进行'Location和Refersh'匹配,首先匹配替换即停止

说明:1) 如果'off',nginx不继承'上层的'proxy_redirect指令2) 也即nginx不对'Location'和'Refresh'响应头'不做'任何修改

⑤  Location疑难问题汇总

排查方向:1) 网站架构 --> 使用的'协议'eg: client --> https --> nginx代理 --> http  --> tomcateg: client --> http  --> nginx代理 --> https --> tomcat2) 日志打印:$upstream_http_location --> 后端原始的'Location响应头'

​​​​​​​解决nginx https代理tomcat redirect问题

1) proxy_redirect http:// $scheme://;使用proxy_redirect将location中的协议转换为'请求nginx的协议'2) port_in_redirect on;使用port_in_redirect on 指示nginx'使用请求的端口',而不是使用'默认'端口

ngx_headers_more模块如何影响Location响应头

nginx访问https跳转到http的解决方法

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

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

相关文章

个人博客系统调试详细过程

系统功能的详细说明和源代码见以下链接:https://blog.csdn.net/shooter7/article/details/121180333相关的源码数据库文件、软件安装包可以联系博主koukou(壹壹23七2五六98) 调试过程如下: 文章目录 调试过程如下:一、数据库安装二、sql数据文件的导入三…

yolov5图像识别voc转yolo代码解析

https://github.com/ultralytics/JSON2YOLO https://blog.csdn.net/qq_51831335/article/details/127237772 目标检测数据集标签转换COCO2VOC、YOLO2VOC、JSON2YOLO <annotation><folder>VOC2007</folder><filename>000001.jpg</filename><s…

【2023/05/06】EDSAC

Hello&#xff01;大家好&#xff0c;我是霜淮子&#xff0c;2023倒计时第1天。 Share 去成为你本该成为的人&#xff0c;任何时候都不会太晚。 &#xff08;出处&#xff1a;乔治艾略特&#xff09; Day1 EDSAC&#xff1a;存储程序式计算机的开山之作。 part1 EDSAC&…

Linux进程状态及优先级

本文已收录至《Linux知识与编程》专栏&#xff01; 作者&#xff1a;ARMCSKGT 演示环境&#xff1a;CentOS 7 进程状态及优先级 前言正文进程状态就绪运行状态R阻塞睡眠状态 S休眠状态D挂起 暂停状态T前台与后台进程待追踪暂停状态t 死亡状态 X僵尸状态 Z 孤儿进程进程优先级查…

《Java虚拟机学习》 java代码的运行过程

1. Java文件转换 当我们保存java文件后&#xff0c;首先由编译器编译成class文件&#xff0c;然后通过Java虚拟机将class文件转换成字节码文件 2.Java虚拟机是怎么运行Java文件 首先将java文件加载到java虚拟机中&#xff0c;然后由虚拟机将类元信息存储在 虚拟机的方法区中。…

华为OD机试 - 各位相加(Java)

一、题目描述 给定一个非负整数 num&#xff0c;反复将各个位上的数字相加&#xff0c;直到结果为一位数。 二、思路与算法 各位相加&#xff0c;使用递归&#xff0c;出口是结果的长度等于1。 三、Java算法源码 public static int addDigits(int num) {recursion(num);re…

Maven 3.9.1下载安装配置一条龙(无压力)亲测

这里写自定义目录标题 前言一、下载 Apache Maven 3.9.11.1、请先检查自己的IDEA是否有这个条件&#xff0c;是否兼容1.2、Maven下载 二、Windows安装配置Maven2.1、解压2.2、新建 repository 本地仓库2.3、配置环境变量MAVEN_HOME 软件路径M2_HOME 本地仓库路径配置Path2.3.1新…

【BIM+GIS】Supermap打开BIM Revit模型的方式

Revit导出Supermap GIS格式数据的方法通常有三种:插件式导出、直接导入和标准交换格式(IFC)导出。 文章目录 一、Revit安装Supermap插件1. 安装Supermap插件2. UDB导出模型3. 打开模型二、Revit导出IFC格式1. Revit导出IFC2. Supermap导入IFC一、Revit安装Supermap插件 1. …

【TCP 重传、滑动窗口、流量控制、拥塞控制】

文章目录 重传机制超时重传快速重传SACK方法Duplicate SACK 滑动窗口流量控制那操作系统的缓冲区&#xff0c;是如何影响发送窗口和接收窗口的呢&#xff1f;窗口关闭 拥塞控制慢启动拥塞避免拥塞发生快速恢复 重传机制 TCP 实现可靠传输的方式之一&#xff0c;是通过序列号与…

大学校友会管理APP系统开发 重温同学梦再叙校园情

互联网技术的深入发展&#xff0c;让各行各业对网络的依赖都逐渐加深&#xff0c;可以说网络在今天已经成为无数个你我他不可或缺的平台。学生时代是一生中最美好的时期&#xff0c;校友是社会高效重要的社会资本和无形资产&#xff0c;校友与校友之间信息交流也需要依靠互联网…

破事精英2◎爬向未来

胡强的2033未免有些过去可怕&#xff0c;海星果然又是反派。 只剩“脑子”的胡强 400百斤只剩“嘴”的庞小白 将自己身体分成一个个“方块”的苏克杰 苍蝇满天飞“衣服堆”的金若愚 “脑子”送到月球打两份工的沙乐乐 有机器人或者分身帮我们干活赚钱&#xff0c;我们去吃喝玩…

Dubbo源码篇02---从泛化调用探究Wrapper机制的原理

Dubbo源码篇02---从泛化调用探究Wrapper机制的原理 什么是泛化调用从传统三层架构说起反射调用尝试优化 泛化调用泛化调用怎么用通过Spring使用泛化调用 利用泛化调用改造现有服务 泛化调用小结 Wrapper机制自定义代理dubbo底层wrapper原理小结 小结 什么是泛化调用 从传统三层…

JVM(类的加载与ClassLoader、双亲委派机制)

文章目录 1. 类的生命周期2. 类的加载过程3. 类加载器&#xff08;classloader)3.1 类加载器的作用3.2 类加载器的分类(JDK8)3.3 双亲委派机制3.3.1 双亲委派机制优势 3.4 查看某个类的类加载器对象3.5 使用ClassLoader获取流 1. 类的生命周期 类在内存中完整的生命周期&#…

【移动端网页布局】flex 弹性布局 ④ ( 设置子元素是否换行 | flex-wrap 样式说明 | 代码示例 )

文章目录 一、设置子元素是否换行 : flex-wrap 样式说明1、flex-wrap 样式引入2、flex-wrap 样式取值说明 二、代码示例1、代码示例 : 默认情况下 flex 弹性布局子元素不会自动换行2、代码示例 : 自动换行 一、设置子元素是否换行 : flex-wrap 样式说明 1、flex-wrap 样式引入 …

拿来吧你——一个类帮你搞定SpringBoot中的请求日志打印

拿来吧你——一个类帮你搞定SpringBoot中的请求日志打印 日常开发工作中避免不了要打印请求日志&#xff0c;这个功能几乎在所有的项目中都需要编写一次&#xff0c;重复的次数多了&#xff0c;难免会感觉繁琐&#xff0c;因此打算搞一个通用类把这块功能拆出来。 废话不多说—…

【Android车载系列】第12章 车载渲染-SurfaceFlinger单独绘制到界面

1 SurfaceFlinger渲染方案 车载的倒车影像同学们知道是怎么实现的吗&#xff1f;等待Android设备开机再打开倒车影像App&#xff1f;车子挂到R档倒车如果等待这个流程实在太久&#xff0c;是否还有其它办法可以让车子挂R档直接展示倒车影像呢&#xff1f;大家思考一下。 我们从…

SuperMap GIS基础产品WebGIS FAQ集锦(2)

SuperMap GIS基础产品WebGIS FAQ集锦&#xff08;2&#xff09; 【iClient】Vue中该如何使用inject传递Map容器&#xff1f; 【解决方案】provide和inject绑定是不可响应的&#xff0c;所以传递时需要传递对象的property&#xff0c;使它变为可响应&#xff0c;示例如下&#…

ESP32-设备驱动TMP102数字温度传感器驱动

TMP102数字温度传感器驱动 文章目录 TMP102数字温度传感器驱动1、TMP102介绍2、硬件准备3、软件准备4、驱动实现1、TMP102介绍 TMP102 器件是一款数字温度传感器,非常适合需要高精度的 NTC/PTC 热敏电阻更换。 该器件提供 0.5C 的精度,无需校准或外部组件信号调理。 器件温度…

Redis --- 多级缓存

一、什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后&#xff0c;先查询Redis&#xff0c;如果未命中则查询数据库&#xff0c;如图&#xff1a; 存在下面的问题&#xff1a; 请求要经过Tomcat处理&#xff0c;Tomcat的性能成为整个系统的瓶颈Redis缓存失效时&#xff…

Java集合之单列集合

分类 集合分为单列集合&#xff08;Collection&#xff09;和双列集合&#xff08;Map&#xff09; 单列集合的体系结构 List集合和Set集合的区别 List系列集合&#xff1a;添加元素是有序的&#xff08;添加的顺序&#xff0c;而非数据的大小顺序&#xff09;、可重复、有索引…