2013-02-20 135 views
-1

我已经在Apache上成功安装了反向代理。它像一个魅力。我使用它来代理http请求到http。我的问题是我需要将变量SERVER_HTTPS转发到我的最终服务器,以指示用户是使用ssl连接还是仅使用http。我发现这样做的一种方法: 每次我可以转发HTTP_X_FORWARDED_PROTO变量,检查前端服务器上:Apache反向代理转发https标头

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') 
    $_SERVER['HTTPS']='on'; 

但这种变化是不适合我,因为我不能编辑高端服务器脚本。可以说,我甚至无法访问它。但我知道如何检查它是否被转发。所以,通常我的问题是:有什么办法可以转发这个变量吗?我已经看到了另外一个变体,用Rewrite引擎,但它对我来说并不起作用,并且没有详细的信息。也许如果我将我的服务器设置在Nginx + Apache上,这将发送这个头变量?

回答

1

如果你可以编辑高端服务器配置,看看mod_rpaf RPAF_SetHTTPS选项:

https://github.com/gnif/mod_rpaf

+0

已经安装了原mod_rpaf,它返回正确的IP,但它只能向前X_FORWARDED_FOR。当我在其配置中添加RPAF_SetHTTPS On或RPAFSetHTTPS On时,它给了我错误:无效的命令'RPAF_setHTTPS',可能是拼错的或由未包含在服务器配置中的模块定义的 之后,我已经安装了您建议的软件包对我来说,它什么都不做。目前正试图解决该问题 – 2013-02-20 23:10:28

+0

感谢您的建议。它工作正常,我只需要为Debian制作我自己的版本。 – 2013-02-21 10:25:18

+0

也许你可以接受答案:) – 2013-05-03 15:14:15