0

我最近在我的服务器上安装了清漆,以减轻工作量。然而,我的一个网站广泛使用 HTML5 'navigator.geolocation.getCurrentPosition()' 函数,并且当上述内容不可用时,它还依赖于安装到 nginx 中的 maxmind 数据库。

我可以理解为什么 nginx/maxmind 版本无法工作,因为它依赖于知道你来自哪个 IP 的 nginx 服务器,并且由于 varnish 位于前面,请求甚至可能无法到达 nginx。

但是,为什么 HTML5 地理定位功能不起作用?我认为这纯粹是客户端,应该不受 Web 服务器的影响?

4

1 回答 1

0

为了让 Nginx Http GeoIP 模块在代理后面工作,您需要将代理服务器的 IP 地址传递给geoip_proxy 指令

我不知道我们是否有足够的信息来推测为什么 W3C 地理定位功能不起作用。正如您所建议的,当您的站点位于代理服务器后面时,没有明显的原因为什么它不应该工作。

顺便说一句,您可能想查看MaxMind 的 GeoIP2 JavaScript 服务,该服务尝试使用 W3C 地理定位,然后在不可用的情况下使用 Web 服务。MaxMind 提供了一个可能满足您需求的免费选项。

于 2013-07-02T01:50:06.643 回答