2014-09-02 32 views
0

我有一個反向代理指向谷歌appengine api。 api是一個共享服務層,所以我通過反向代理將多個站點指向它。反向代理App引擎丟失主機

mysite1.com> myapp.appspot.com mysite2.com> myapp.appspot.com

的問題是,在App Engine上的PHP腳本我無法訪問原來的主機名。如果我看$ _SERVER變數,我所看到的全是myapp.appspot.com,我希望看到mysite1.com

我嘗試將代理標題Host設置爲主站點URL,並且它打破了應用程序引擎。有沒有辦法從應用程序引擎獲取代理URL?

+1

我已經使用nginx解決了這個問題: proxy_set_header X-Forwarded-Host $ host; proxy_set_header X-Forwarded-Server $ host; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $ remote_addr; – 2014-09-02 18:43:56

+1

嗨,埃裏克,你可以添加您的評論作爲回答您的問題,爲社區的利益?謝謝。 – Mario 2014-12-03 10:50:50

回答

1

我已經解決了這個使用nginx的:

proxy_set_header X-Forwarded-Host $host; 
proxy_set_header X-Forwarded-Server $host; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_set_header X-Real-IP $remote_addr; 

然後你可以抓住從$ _SERVER陣列的X轉發變量按照通常的PHP。

+0

'X-Forwarded-For'就足夠了 – 2015-03-20 21:25:35