首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当X转发-Proto为http时,未设置HTTPS环境变量

问当X转发-Proto为http时,未设置HTTPS环境变量
EN

Stack Overflow用户
提问于 2016-07-08 21:58:12
回答 1查看 5.1K关注 0票数 4

我在Google平台上设置了端点终止设置,HTTP负载均衡器和HTTPS设置为与后端通信的协议。

这意味着所有请求,HTTP或HTTPS,都是对apache的HTTPS。这方面的问题是,HTTPS环境变量被设置为on,即使X-Forwarded-Proto设置为http。

我所有的研究和测试都只指向相反的情况(将HTTPS设置为on,当X-Forwarded-Proto是https时,通过SetEnvIf X-Forwarded-Proto https HTTPS=on规则)。

但是,当HTTPS是http__时,我需要一些可以取消设置的东西。

我尝试过设置SSLOptions -StdEnvVars以及SetEnvIf、SetEnv和UnsetEnv的许多组合。通过mod_rewrite设置它对我来说不是一个选项(我不知道它是否会起作用)。关闭StdEnvVars的一个有趣的注意是,即使关闭了它,除了HTTPS之外,所有与SSL相关的变量都会消失,而且我可以确认在我的任何配置文件中没有任何其他设置。

编辑:

我在服务器配置、vhost和htaccess中尝试过的一些指令示例:

代码语言:javascript
复制
SetEnvIf X-Forwarded-Proto http HTTPS=Off
SetEnvIf X-Forwarded-Proto http HTTPS=0
SetEnvIf X-Forwarded-Proto http !HTTPS
SetEnv HTTPS Off
SetEnv HTTPS 0
SetEnv HTTPS
UnsetEnv HTTPS

将这些指令与其他变量一起使用,包括像foo这样的测试工作得很好。

EN

回答 1

Stack Overflow用户

发布于 2016-07-26 17:56:33

将这些指令与其他变量一起使用,包括像foo这样的测试工作得很好。

首先是一个想法(如果有人有更好的想法,就很乐意收回)。

目标代理 目标代理终止来自客户端的HTTP(S)连接,并由一个或多个全局转发规则引用,并将传入的请求路由到一个URL映射。 代理将HTTP请求/响应标头设置为:

  • Via:1.1 google (请求和答复)
  • X-Forwarded-Proto: [http | https] (仅限于请求)
  • X-Forwarded-For: <client IP(s)>, <global forwarding rule external IP> (仅请求)可以是一个以逗号分隔的IP地址列表,这取决于客户机正在传输的中间层所附加的X转发条目。该部分中的第一个元素显示原始地址。

问题是这是在哪里设置的。如果在apache配置文件中,只需更改配置即可。如果它被设置在其他地方,你需要找出它的位置。

TargetHttpsProxies资源也没有列出任何改变它的方法。那么,您如何发布导致上述行为的配置文件?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38275934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档