通过代理使用 Google App Engine 的位置服务
·
问题:通过代理使用 Google App Engine 的位置服务
我使用 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 中检索正确的国家代码?
解答
您已经提供了答案所需的所有信息:“..App Engine 根据客户端的 IP 地址确定此代码”。因此,他们实际上会查看建立连接的 IP。
由于您的代理位于客户端和 AppEngine 之间,因此 AppEngine 会看到来自代理 IP 的连接。没有办法解决它。
更多推荐

所有评论(0)