我正在使用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中检索正确的国家/地区代码?
答案 0 :(得分:1)
您已经提供了答案所需的所有信息:“.. App Engine从客户端的IP地址确定此代码”。因此,他们实际上会查看连接所在的IP。
由于您的代理位于客户端和AppEngine之间,因此AppEngine会看到来自代理IP的连接。没办法。