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

Pel*_*leg 6 proxy google-app-engine nginx geolocation

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

我知道,头是由客户端IP来确定,如提到这里:

" 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中检索正确的国家/地区代码?

Pet*_*ego 1

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

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

  • 谢谢彼得。我知道这可以通过 Apache 服务器而不是 GAE 来实现,只需在 Apache 端进行一些配置更改即可。据我所知,GAE 中没有那么多配置空间。 (2认同)