7

我使用 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 中检索正确的国家代码?

4

1 回答 1

1

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

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

于 2013-10-28T18:17:41.123 回答