2013-02-20 133 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