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

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

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

  1. 五十、Nginx负载均衡、SSL原理、生成SSL密钥对、Nginx配置SSL

    五十.Nginx负载均衡.ssl原理.生成ssl密钥对.Nginx配置ssl 一.Nginx负载均衡 代理一台机器叫代理,代理两台机器就可以叫负载均衡. 代理服务器后有多个web服务器提供服务的时候, ...

  2. Linux centosVMware Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl

    一.Nginx负载均衡 vim /usr/local/nginx/conf/vhost/load.conf // 写入如下内容 upstream qq_com { ip_hash; 同一个用户始终保持 ...

  3. Nginx负载均衡,ssl原理,生成ssl密钥对,Nginx配置ssl

    Nginx负载均衡 负载均衡就是:将本应该这台机器(或集群)要处理的请求(工作或负载),根据一定的算法,平均地分配到其他的机器(或集群)上去处理,这样可以大大减少这台机器(或集群)的工作量,防止因负载 ...

  4. nginx负载均衡分发请求的几种方式

    nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个. nginx的upstre ...

  5. linux window nginx性能,Nginx负载均衡搭建(Window与Linux)

    windows上搭建nginx负载均衡 1.准备几台http服务器软件,这里选用一台apache一台tomcat apache(windows)下载链接:https://www.apachehaus. ...

  6. nginx负载均衡和高可用

    代理和负载均衡的区别 代理负责把连接请求直接转发到后台某个web节点     负载均衡负责把请求使用某种调度算法分散发布给后台所有web节点 ----------------------------- ...

  7. nginx 一个请求发给多台机器_配置Nginx实现负载均衡

    企业在解决高并发问题时,一般有两个方向的处理策略,软件.硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中web服务器前面一层最常用的的添加负载 ...

  8. Nginx+Firebug 让浏览器告诉你负载均衡将请求分到了哪台服务器

    在大型网站或者对高可用有要求的架构中,通常需要多台web服务器同时为用户服务,那么,如何直观地了解负载均衡设备将请求转向了哪台web机器上呢? 方法1: 在编译安装Nginx之前修改Nginx的版本信 ...

  9. nginx 反向代理web应用将https请求转成http请求时,必须注意事项

    通过nginx可以实现将https请求转成http请求.具体方法这里暂且不表. 但有一项配置必须要添加(查看大多数配置均为对此进行提及): proxy_set_header WL-Proxy-SSL ...

最新文章

  1. Yocto的使用实例
  2. Python3 定向爬虫之“抓取糗事百科图片”
  3. 从新手到高手,Java初学者要经历哪些阶段?
  4. 利用python对微信云数据库_如何用python看看女神的微信百度云里面有啥?
  5. java 获取oracle表结构_获取Oracle中所有表的列表?
  6. 高可用性HA及Cluster集群
  7. 部署war包后,新增tomcat服务器,启动tomcat服务器报错解决方法
  8. mysql join 主表唯一_mysql left join 右表数据不唯一的情况解决方法
  9. 合并排序-MergeSort
  10. 暮光之城2蓝光BD高清下载
  11. 奥拉星插件flash下载手机版下载安装_flash控件手机版
  12. 干货丨让你更容易影响别人的 52 个小技巧
  13. 【软件测试】8年资深测试解析,软件测试行业情报,风风雨雨......
  14. 路径规划学习之地图生成(二)
  15. 项目经理面试题pmp面试题项目管理面试题
  16. 沙盘SandBoxie4.14 特别版+无限试用补丁
  17. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
  18. 网络舆情危及企业经营如何应对?舆情优化十大解决方案!
  19. c语言背包问题装字母,C语言动态规划之背包问题详解
  20. 【机器学习】模型评估-手写数字集模型训练与评估

热门文章

  1. 面向对象六大原则——接口隔离原则
  2. 学习日志2020.7.9 Livox file保存流程
  3. 基于ArcPy的GDB地理数据库拓扑检查
  4. switch的参数类型
  5. 记一次华为勇敢星IT应用软件开发实习收获总结
  6. Java连接Redis
  7. 如何锁定计算机到任务栏,Win7 Win8系统下如何将“计算机”锁定到任务栏
  8. golang中int占用多少个字节
  9. linux wstring乱码,对C++中ANSI,GBK,utf8,wstring,string,unicode的一些重要踩坑总结
  10. 小程序引入字体注意点