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

news2024/11/17 13:36:31

一   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 Redirect

2) Non-Authoritative-Reason: HSTS  --> "浏览器返回的虚拟响应头"

备注: HSTS是HTTP严格传输安全协议'HTTP Strict Transport Security',简称:'HSTS'

3) Strict-Transport-Security       --> "响应头"

浏览器自我进行307重定向 

1)打开地址: chrome://net-internals/#hsts

2)查询域名,在"Query HSTS/PKP domain"输入'域名'

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

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

1) '301'永久重定向

  return 301  https://www.baidu.com

  rewrite ^   https://www/aidu.com permanent

2) '302'临时重定向

  return 302  https://www.baidu.com
  
  rewrite ^   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  --> tomcat

     eg: client --> http  --> nginx代理 --> https --> tomcat

  2) 日志打印:

     $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.coloradmin.cn/o/497001.html

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

相关文章

基于Qt、C++的毕业设计课设数学绘图工具(平面图、图表、立体图绘制-附下载链接)

基于Qt、C的毕业设计课设数学绘图工具(平面图、图表、立体图绘制) 介绍 这是我的毕业设计,基于Qt Creator 4.11.1,c语言。 效果图如下 点我下载项目源码(含打包软件) 使用说明 1. 二维函数绘制 开始界面…

python 系列 07 - 基于easyocr的ocr识别

OCR,光学文字识别,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。本示例通过easyocr库来演示。easyocr是一个比较流行的库,支持超过80种语言。安装的时候注意会附带安装torch库(一个深度学…

将ROS1和ROS2安装到同一个ubuntu系统中,ROS2安装??????????????

1. 本文测试环境: ubuntu:20.04,虚拟机 ROS1:noetic ROS2:foxy 2. 先说结论 ROS1 与 ROS2 共存,需要考虑三个问题: 1) 不同Ubuntu版本,有不同版本的ROS1和ROS2推荐,尽量不要任性地乱装; 2)ROS1和ROS2安装过程中,是否会出现文件“删改”的问题?目前使用下来,并…

拓扑排序详解(包含算法原理图解、算法实现过程详解、算法例题变式全面讲解等)

前置知识 有向无环图 在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。 如图所示。 入度 对于一个有向图,若x点指向y点,则称x点为y点的入度。 出度…

Redis --- 多级缓存

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

python每日一练:硬币划分(多方法详解)

文章目录 前言0、题目一、暴力总是不能解决问题的二、还能更暴力一点三、减少暴力思想四、引入先进思想总结 前言 这题挺有意思的,典型的背包组合问题,虽然没有要求各种组合方式,不过我们可以试试给出组合方式。当然这题不太可能用一行代码解…

STM32 从入门到精通系列讲解 - 总目录

👦 作者介绍:Bazinga bingo,专注C语言应用硬核干货分享,潜心修炼,虚心学习,立志做嵌入式相关赛道的Top。 📕 本文收录于《STM32开发》专栏,包含STM32内部模块介绍、片内资源开发、不…

如何使用bingChat(使用方法+遇到的问题+感受)

文章目录 前言一、如何使用Bing Chat1. 下载new Bing2.重新注册一个microsoft(此步骤可略过,如有问题再操作此步骤)3. 使用 Bing Chat 二、常见问题1.Chat mode is only available when you have access to the new Bing.2. 网页上没有“聊天…

leetcode 104——二叉树的最大深度

文章目录 题目详情方法一 万能的递归方法二 通过使用层序遍历的方式Java完整代码递归实现非递归实现——借助队列 题目详情 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 l…

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…

x265码控分析

D和R的关系 高分辨率量化 均匀量化&#xff1a;量化区间 ‘ Δ k y k − y k − 1 ‘ \Delta_ky_k-y_{k-1} ‘Δk​yk​−yk−1​‘&#xff0c;近似为常数&#xff1b;p(x)为信源概率密度函数&#xff0c;且 ‘ Δ k ‘ \Delta_k ‘Δk​‘的大小相对于p(x)的变化率充分小&…

【模拟IC学习笔记】 反馈

反馈的作用&#xff1a;增益灵敏度降低 采用开环的方式实现一个精确的增益比较困难&#xff0c;但是可以实现高增益。 增益灵敏度衍生出来的另外两个特点 1、增加系统带宽。 2、改变输出阻抗&#xff0c;提高驱动能力。 反馈的作用&#xff1a;增加带宽 带宽的增加来源于…

对传递函数的零极点、频率响应、稳定性的理解

对传递函数的零极点、频率响应、稳定性的理解 零极点 从传递函数求零极点 令传递函数分子为0求出零点&#xff0c;令分母为0求出零点。 频率响应 单极点系统的频率响应 A v A v d c ∗ ( 1 / ( 1 s R C ) ) AvAv_dc*(1/(1sRC)) AvAvd​c∗(1/(1sRC))&#xff0c;系统的极…

python通过SSH管道访问ClickHouse

目录 前言什么是跳板机什么是SSH协议SSH管道访问ClickHouse参考文献 前言 因为新业务需要&#xff0c;数据都存储在阿里云服务器的ClickHouse数据库里&#xff0c;最近想取点数探索一下&#xff0c;于是下载了客户端工具DBeaver并成功连接ClickHouse&#xff0c;然后想通过pyt…

【前端面试题】这些js功能你一定要学会

大厂面试题分享 面试题库 前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全 1.图片失败&#xff0c;重新加载 如果图片资源不存在&#xff0c;那可以设置图片失败的占位…

深度学习——A3C算法

A3C算法&#xff08;Asynchronous Advantage Actor-Critic&#xff09; DDPG算法之后&#xff0c;DeepMind对其改造&#xff0c;提出了效果更好的 Asynchronous Advantage Actor-Critic&#xff08;A3C&#xff09;算法&#xff08;论文是 Asynchronous Methods for Deep Rein…

【谷粒商城之远程调用和异步调用丢失请求头问题】

本笔记内容为尚硅谷谷粒商城远程调用和异步调用丢失请求头问题部分 目录 一、Feign远程调用丢失请求头 二、Feign异步调用丢失请求头问题 一、Feign远程调用丢失请求头 ​ ​ 问题&#xff1a; feign在远程调用之前要构造请求&#xff0c;调用了很多的拦截器。 浏览器发送请…

u01使用率100%报错归档满的问题

今天下午客户报数据库无法连接了&#xff0c;我也立刻登录查看 因为显示orcl1归档满了&#xff0c;我就登录查看磁盘组的空间&#xff0c;发现空间空余很多 就sqlpus登录了&#xff0c;发现u01使用率满了 [oracledb1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 …

《面试1v1》动态代理

我是 javapub&#xff0c;一名 Markdown 程序员从&#x1f468;‍&#x1f4bb;&#xff0c;八股文种子选手。 面试官&#xff1a; 那你能说一下反射和动态代理的关系吗&#xff1f; 候选人&#xff1a; 当然可以。动态代理是一种基于反射的机制&#xff0c;它可以在运行时动…

动设备维护管理的新趋势——在线监测与故障诊断系统

随着工业自动化水平的提高&#xff0c;动设备在现代工业中扮演着越来越重要的角色。然而&#xff0c;动设备故障率高、维修难度大、维护费用高是工厂面临的重要挑战之一。针对这些问题&#xff0c;在线监测与故障诊断系统逐渐成为动设备维护管理的新趋势。 图.设备工程师正在维…