多级代理 haproxy 传递X-Forwarded-Proto

摘要:
有时候后端需要知道客户端是用的http请求还是https请求,所以一般在haproxy加上一个X-Forwarded-Proto头http-requestset-headerX-Forwarded-Protohttpif!

有时候后端需要知道客户端是用的http请求还是https请求,所以一般在haproxy加上一个X-Forwarded-Proto头

http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
http-request set-header X-Forwarded-Proto https if { ssl_fc }

但是如果haproxy前面还有反代并且传递了X-Forwarded-Proto头,那么这么做就会把haproxy前面的反代传递的X-Forwarded-Proto头覆盖掉

这种情况可以用haproxy的强大的acl来处理

acl h_xfp_exists req.hdr(X-Forwarded-Proto) -m found
http-request set-header X-Forwarded-Proto http if !{ ssl_fc } !h_xfp_exists
http-request set-header X-Forwarded-Proto https if { ssl_fc } !h_xfp_exists

参考文档:

https://www.haproxy.com/documentation/hapee/1-8r1/traffic-management/http-rewrite/

https://www.haproxy.com/documentation/hapee/1-8r1/traffic-management/acls/

免责声明:文章转载自《多级代理 haproxy 传递X-Forwarded-Proto》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CSS字体加粗属性font-weight工作原理Socket与系统调用深度分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Nginx配置https兼容http

现象 如果一个https站点里面有引用一些http的静态资源,图片可以正常加载,但是js文件、css文件就会加载失败,如下图: 原因 为了解释这个问题,首先要理解一下Mixed Content的概念:HTTPS 网页中加载的 HTTP 资源被称之为 Mixed Content(混合内容),不同浏览器对 Mixed Content 有不一样的处理规则。 忽...

aws ec2 导出成ova,导入到vmware

目的:项目迁移,从aws迁移到其他云商C调研:aws ec2支持导出成ova格式,C云商也支持后台导入步骤步骤:1)aws ec2安装aws cli参考https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/install-cliv2-linux.html 2)创建1个s3桶(和ec2同在一个regio...

Burpsuite使用

2-burpsuite使用简介       1. 代理配置     https需导入证书       burpsuite设置                   浏览器或app代理设置:   2. 请求拦截     代理设置完毕后--点击开始拦截请求--使用浏览器或app访问需测试请求   3. 请求扫描及设置     抓包后选择需要进行漏洞扫描的...

docker环境中安装node、pm2,映射项目文件守护程序

1.docker安装完成后,获取对应版本,可自定义node版本,默认为最新版本。 git pull node:<version> 2.编写Dockerfile,在文件中添加安装pm2命令。建议新建一个单独docker的文件,文件中存放Dockerfile,否则在build镜像的时候会将整个目录下的文件都发送至docker。 FROM node...

HAProxy安装配置用于TCP的负载均衡

HaProxy介绍 Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备、虚拟主机、基于TCP和HTTP应用代理等功能。其配置简单,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查),当其代理的后端服务器出现故障时,Haproxy会自动的将该故障服务器摘除,当服务器的故障恢复后Haproxy还会...

编译apollo实践

前面主要参考 手把手教你运行apollo,但这个文章里的apollo版本太低。后面主要看官方文档,在官方的apollo/docs目录下,通过typora去看。 sudo snap install typora 以前在别的公司可以通过sublime的插件去看,但这次安装了sublieme件,却没有效果。 准备工作 安装 Ubuntu 18.04.5 LTS...