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_。

相关推荐
Leinwin31 分钟前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_8653825035 分钟前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇40 分钟前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7591 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣1 小时前
智能体选型实战指南
运维·人工智能
yy55271 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔4 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密4 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20154 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑