nginx负载转发源请求http/https:X-Forwarded-Proto及nginx中的转发报头

今天在排查服务器的问题时最后定位到服务器因为经过了运维这一层的处理,转发过来的请求不管用户请求的是https还是http,我们的proxy服务器收到的都是80端口上的http。于是联系相关部门了解有没有现成的可用的这样一个字段来获得这个值。公司用的也是标准报头,即X-Forwarded-Proto。

X-Forwarded-Proto(XFP)报头是用于识别协议HTTP或HTTPS的,即用户客户端实际连接到代理或负载均衡的标准报头。后端的服务器如果要确定客户端和负载平衡器之间使用的协议,可以使用X-Forwarded-Proto请求标头。nginx是支持读取非nginx标准的用户自定义header的,但是需要在http或者server下使用underscores_in_headers开启header的下划线支持,然后使用proxy_set_header向后端服务器发送字段X-Forwarded-Proto。

bash 复制代码
#proxy_set_header上下文:http, server, location。语法:
proxy_set_header field value;
#默认值:	
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;

#开启header的下划线支持:
underscores_in_headers on;
#设置向后端proxy发送X-Forwarded-Proto字段
proxy_set_header  X-Forwarded-Proto  $http_X_Forwarded_Proto;
proxy_set_header  X-Real-IP  $remote_addr;

在后端的服务器,使用http_X_Forwarded_Proto接收的,也可以使用小写比如http_x_forwarded_proto来接收,前面都需要加上http_。

相关推荐
梦想的旅途21 小时前
企微 API 二次开发:利用 AI Agent 实现自动化运维
运维·人工智能·企业微信
安科瑞-小李2 小时前
铁路智能运维进化路线:自动化→状态可视→预测维护
运维·自动化·数据采集·能耗可视化
酷可达拉斯2 小时前
自动化运维-Ansible任务控制与流程控制
运维·自动化·ansible
HiDev_2 小时前
【非标自动化】2、认识元器件(电机保护器)
运维·自动化
承渊政道4 小时前
KES专业技能包发布:覆盖数据库开发、迁移与运维全流程
运维·数据库·gitee·数据库开发·金仓数据库
笨鸟先飞,勤能补拙4 小时前
Web 服务器与计算机网络全景原理
运维·服务器·前端·网络·人工智能·计算机网络·web安全
caimouse4 小时前
ReactOS 图形系统分析(3):显示驱动 DDI framebuf.dll
linux·运维·网络
跨境小彭4 小时前
Temu运营优化方案:活动库存自动化管控,解决断流、超卖与权重下跌问题
大数据·运维·人工智能·自动化·跨境电商·temu·temu电商运营
漫谈数据智理4 小时前
IDS-RAM 如何支撑数据空间走向可
大数据·运维·微服务
佳児素花痴╮4 小时前
网络问题与基础理论
运维·服务器·网络