使用Google App Engine的位置服务与代理

时间:2013-10-28 08:30:29

标签: google-app-engine nginx proxy geolocation

我正在使用Nginx作为代理来过滤AppEngine Java应用程序的请求。 GAE的位置服务(X-AppEngine-country标头)在没有代理的情况下运行良好,但是现在GAE使用代理服务器的IP作为客户端IP,而X-AppEngine-country标头是无用的 - 它返回“ZZ”作为国家代码。

我知道标头是由客户端IP决定的,如here所述:

X-AppEngine-Country -     发出请求的国家/地区,作为ISO 3166-1 alpha-2国家/地区代码。 App Engine从客户端的IP地址确定此代码。

问题是我不知道这个标头派生的数据是什么。我使用Nginx模块在X-Forwarded-For,Remote_Addr和Http_Client_IP标头中设置客户端IP,但显然X-AppEngine-country标头来自其他地方。

如何为GAE提供客户端IP,以便从原始IP中检索正确的国家/地区代码?

1 个答案:

答案 0 :(得分:1)

您已经提供了答案所需的所有信息:“.. App Engine从客户端的IP地址确定此代码”。因此,他们实际上会查看连接所在的IP。

由于您的代理位于客户端和AppEngine之间,因此AppEngine会看到来自代理IP的连接。没办法。