【微服务部署】04-ForwardedHeaders
文章目录
- 1. ForwardedHeaders
- 1.1 场景
- 1.2 关键的HTTP头
- 1.3 核心处理要点
1. ForwardedHeaders
1.1 场景
- 获取用户IP
- 获取用户请求的原始URL
1.2 关键的HTTP头
- X-Forwarded-For
- X-Forwarded-Proto
- X-Forwarded-Host
1.3 核心处理要点
- 设置PathBase
- 设置ForwardedHeaders中间件
- 设置受信任的网关或代理的IP段
public void ConfigureServices(IServiceCollection services)
{...services.Configure<ForwardedHeadersOptions>(options =>{// 默认情况下ForwardedHeadersOptions有默认的设置和代理,这里要清除掉options.KnownNetworks.Clear();options.KnownProxies.Clear();options.ForwardedHeaders = ForwardedHeaders.All;// 允许输出所有类型头});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{if (Configuration.GetValue("USE_PathBase", false)){app.Use((context, next) =>{context.Request.PathBase = new PathString("/mobile");return next();});}if (Configuration.GetValue("USE_Forwarded_Headers", false)){app.UseForwardedHeaders();}// 通过上述两段代码就可以使应用程序正确感知到用户的原始响应,默认情况下应用程序是没有开启这两段设置的
}// 控制器测试
[HttpGet]
public IActionResult ShowRequestUri(){return Content(Request.GetDisplayUrl());}[HttpGet]public IActionResult ShowHeaders(){var sb = new System.Text.StringBuilder();foreach (var item in Request.Headers){sb.AppendLine($"{item.Key}:{item.Value}");}return Content(sb.ToString());}
UseForwardedHeaders 作用是将当前的请求X-Forwarded-Header应用到HTTP Context上,作用是是应用程序在组装当前的请求地址时使用到正确的地址
通过以上设置,应用程序输出真实的请求地址,网关中不需要设置
相关文章:
【微服务部署】04-ForwardedHeaders
文章目录 1. ForwardedHeaders1.1 场景1.2 关键的HTTP头1.3 核心处理要点 1. ForwardedHeaders 1.1 场景 获取用户IP获取用户请求的原始URL 1.2 关键的HTTP头 X-Forwarded-ForX-Forwarded-ProtoX-Forwarded-Host 1.3 核心处理要点 设置PathBase设置ForwardedHeaders中间件…...
JVM 垃圾收集器
重点:CMS,G1,ZGC 主要垃圾收集器如下,图中标出了它们的工作区域、垃圾收集算法,以及配合关系。 Serial 收集器 Serial 收集器是最基础、历史最悠久的收集器。 如同它的名字(串行),…...
CSS 样式使用link和@import有什么区别
在页面导入样式时,使用link和import有以下区别: 位置:link标签可以放置在HTML文档的head或body中的任何位置,而import规则必须出现在CSS样式表的顶部。 加载方式:当浏览器解析到link标签时,会立即请求并加…...
LeetCode-2511-最多可以摧毁的敌人城堡数目
题目链接 代码实现: class Solution {/** 找 1 -> -1 的时候,经过0的最大个数* 解题思路:双指针*/public int captureForts(int[] forts) {int len forts.length;if(len1){return 0;}int max Integer.MIN_VALUE;boolean flag false;boo…...
iOS开发Swift-2-图片视图、App图标-赏月App
1.创建新项目 点击File - New - Project。 选择Single View App,点击Next。 填写文件信息,点击Next。 选择文件位置,点击Create。 修改App显示名称为 “赏月”。 2.设置背景色 选择Main,点击View界面,选择右边属性&…...
node18 vue2启动报错 error:0308010C:digital envelope routines::unsupported
出现原因 貌似是因为是因为 node 17版本开始发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。 解决方法 第一种方法降低node版本 降低到17以下即可 ,如项目不能降低版本 看后面的解决方式 第二…...
Java8实战-总结18
Java8实战-总结18 使用流筛选和切片用谓词筛选筛选各异的元素截短流跳过元素 使用流 流让你从外部迭代转向内部迭代。这样,就用不着写下面这样的代码来显式地管理数据集合的迭代(外部迭代)了: List<Dish> vegetarianDishes new ArrayList<>…...
ARM编程模型-指令流水线
流水线技术通过多个功能部件并行工作来缩短程序执行时间,提高处理器核的效率和吞吐率,从而成为微处理器设计中最为重要的技术之一。 1. 3级流水线 到ARM7为止的ARM处理器使用简单的3级流水线,它包括下列流水线级。 (1࿰…...
邮件营销:高效的节日宣传方式
每个国家都有当地的传统节日,像是我国刚过去的端午节,即将迎来的中秋节、国庆节。我们除了会进行一些传统习俗外,各路商家还会趁这个机会开启促销活动。 对于公司来讲,抓住每一次营销活动都可能会带来更高的营销额,或…...
Leetcode109. 有序链表转换二叉搜索树
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度…...
基于Googlenet深度学习网络的人脸身份识别matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..................................................................... % 定义修改的范围 …...
vue2 生命周期,工程化开发入门
一、今日目标 1.生命周期 生命周期介绍生命周期的四个阶段生命周期钩子声明周期案例 2.工程化开发入门 工程化开发和脚手架项目运行流程组件化组件注册 二、Vue生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好)什么…...
Elasticsearch 分布式搜索——聚合
1.聚合的种类 聚合常见的有三类: **桶(Bucket)**聚合:用来对文档做分组 TermAggregation:按照文档字段值分组,例如按照品牌值分组、按照国家分组Date Histogram:按照日期阶梯分组,例…...
苹果将在iPhone16系列中引入微透镜阵列技术,亮度更高、功耗更低
根据韩国媒体The Elec的报道,苹果公司正与其主要供应商三星和LG展开合作,以评估并衡量是否有必要在明年的iPhone 16系列中引入微透镜(micro-lens)技术来升级屏幕。 这项方案集中在OLED屏幕架构上,计划采用微透镜阵列&…...
Window10 安装 Lua
1、下载地址:https://luabinaries.sourceforge.net/download.html 2、下载 3、解压后共有4个文件,这里我把这几个文件放到如下目录 D:\Program Files\lua-5.4.2\bin 4、定义环境变量 5、打开 powershell,运行 lua54 -v PS C:\Windows\syste…...
Centos替代方案分析(Ubuntu篇)
最受欢迎Linux操作系统 在上百个Linux版本中,Ubuntu和CentOS是最受欢迎的开源操作系统,以其稳定性、高性能和广泛的社区支持而闻名。Ubuntu以友好的用户界面和多样的应用程序生态系统吸引着广大用户,适用于桌面和服务器。而CentOS则因其与RH…...
关于计数以及Index返回订单号升级版可以控制年月日累计(不重复)(sqlite)
1数据库创建: RAGMA foreign_keys false;-- ---------------------------- -- Table structure for OrderSIndex -- ---------------------------- DROP TABLE IF EXISTS "OrderSIndex"; CREATE TABLE "OrderSIndex" ("Id" INTEGER…...
前端实现在线预览文件
一、实现word、xls、ppt文件的在线预览功能 1、通过调用微软的在线预览功能, word、ppt、xls文件实现在线预览的方式比较简单可以直接通过调用微软的在线预览功能实现(预览前提:资源必须是公共可访问的) <iframe srchttps://…...
海外有哪些流行的支付方式?
大家好,我是老三,很久没写支付相关的文章了,这期给大家讲一讲,海外都在用哪些支付方式。 简介 我们先来看下两个主流电商产品的美国站的支付方式: 在国内,想必大家都习惯了支付宝和微信支付二分天下&…...
服务器数据恢复-重组RAID导致RAID6数据丢失的数据恢复案例
服务器数据恢复环境: 一台存储设备中有一组由12块硬盘组建的RAID6磁盘阵列,上层采用EXT3文件系统,共划分3个LUN。 服务器故障&分析: 存储设备在运行过程中RAID6阵列突然不可用,管理员对故障存储进行了重新分配RAI…...
忍者像素绘卷效果实测:同一Prompt下不同步数对像素锐度影响对比分析
忍者像素绘卷效果实测:同一Prompt下不同步数对像素锐度影响对比分析 1. 测试背景与目的 忍者像素绘卷作为一款基于Z-Image-Turbo深度优化的图像生成工具,其独特的16-Bit复古游戏美学风格吸引了大量创作者。在实际使用中,我们发现"描绘…...
Anthropic 又双叒翻车了:Claude Code源代码打包失误,这已经是第几次了?
今天(2026-03-31)上午,Anthropic的Claude Code CLI又出大糗了。 安全研究员 Chaofan Shou发现: 他们的 npm 包里多塞了一个 60MB 的 cli.js.map 文件。 结果呢?完整源代码直接公开——1900多个 TypeScript 文件&#x…...
强化学习实战:用Python手把手实现值迭代与策略迭代算法(附完整代码)
强化学习实战:用Python手把手实现值迭代与策略迭代算法(附完整代码) 强化学习作为机器学习的重要分支,近年来在游戏AI、自动驾驶、机器人控制等领域展现出惊人潜力。对于初学者而言,理解算法原理固然重要,但…...
中兴光猫配置解密工具:3步解锁家庭网络自主权
中兴光猫配置解密工具:3步解锁家庭网络自主权 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否曾经因为无法修改光猫配置而感到束手无策?当网…...
Wangle客户端开发实战:从零开始构建高效网络应用
Wangle客户端开发实战:从零开始构建高效网络应用 【免费下载链接】wangle Wangle is a framework providing a set of common client/server abstractions for building services in a consistent, modular, and composable way. 项目地址: https://gitcode.com/g…...
Gon部署与运维:生产环境配置、监控和故障排除完整手册
Gon部署与运维:生产环境配置、监控和故障排除完整手册 【免费下载链接】gon Your Rails variables in your JS 项目地址: https://gitcode.com/gh_mirrors/go/gon Gon是一款专为Rails应用设计的实用工具,能够轻松实现Rails变量在JavaScript中的共…...
前后端时间数据类型不一致如何解决
本文分析了前端和后端时间数据类型的不一致性,并提供了具体的解决方案。问题的根源是后端返回的时间数据类型与前端预期类型不一致,导致前端无法直接处理。后端采用Javatimestamp类型和MySQLdatetime类型存储时间,前端typescript定义createti…...
如何用开源工具实现3D打印钥匙自由?从参数测量到模型生成的实践路径
如何用开源工具实现3D打印钥匙自由?从参数测量到模型生成的实践路径 【免费下载链接】keygen OpenSCAD tools for generating physical keys 项目地址: https://gitcode.com/gh_mirrors/ke/keygen 在数字化制造蓬勃发展的今天,3D打印技术正逐步走…...
原创:光刻机中下游质量约束框架:从底层落地破局芯片制造困局
光刻机中下游质量约束框架:从底层落地破局芯片制造困局 作者:华夏之光永存 摘要 当下国内芯片产业陷入一个普遍误区:将攻克EUV光刻机整机视为破局“卡脖子”的唯一核心,大量资源集中投入上游光刻机研发,却严重忽视中下…...
GLM-OCR服务监控与运维指南:使用Prometheus与Grafana搭建看板
GLM-OCR服务监控与运维指南:使用Prometheus与Grafana搭建看板 想象一下,你负责的GLM-OCR服务正在线上稳定运行,突然接到业务方反馈,说图片识别接口响应变慢了。你第一反应是什么?是登录服务器看日志,还是去…...
