nginx GeoIP缓存密钥

时间:2016-03-04 15:14:08

标签: nginx geoip

我想在nginx中使用GeoIP来根据国家/地区提供不同的页面。我也想缓存一切。

当来自美国的用户访问我的主页时,我希望他们从缓存中查看美国版本的主页。当来自英国的用户访问我的主页时,我希望他们从缓存中看到英国版的主页。

安装GeoIP模块后,我可以将国家/地区代码放入缓存密钥吗?这是实现性能的最佳方式,因为现在服务器将查找每个IP的国家/地区。我不知道这是不是非常重要。

我正在考虑获取浏览器的userLanguage设置并通过AJAX发送,然后缓存它。只需要几个字符就地理位置。

Best way to determine user's locale within browser

1 个答案:

答案 0 :(得分:3)

按照标准教程安装GeoIP模块之后,我只需将国家/地区代码放入缓存密钥,它就可以了:

{{1}}

我读到nginx在内存中加载GeoIP数据库,因此性能似乎保持不变。

我发现其他问题比GeoIP查找更能影响性能:

  1. 404错误击中了CGI
  2. Cachekey不包含查询字符串。查询字符串的变化方式比国家/地区更多。
  3. 清除缓存。通过删除所有文件清除缓存之前。现在,我正在寻找使用wget获取新页面,然后将它们复制到缓存中。