Nginx使用GeoIP2的拓展模块处理不同国家的访问

MaxMind旗下的GeoIP2服务能识别互联网用户的地点位置与其他特征,应用广泛,包括个性化定制内容、诈欺检测、广告定向、网站流量分析、执行规定、地理目标定位、地理围栏定位 (geo-fencing)以及数字版权管理。MaxMind的GeoIP2数据库为大容量环境提供IP智能数据(官方介绍)。通俗来说,MaxMind的GeoIP2数据库提供准确的IP信息,包括IP地址的位置(国家、城市、经纬度)。现在其GeoIP已经升级到第二代,也提供了免费版本的IP数据库(GeoLite2),对于识别IP地址来源国家比较准确,要识别到城市,需要付费购买精准版。

GeoLite2 开源数据库下载地址:

GeoLite2 城市IP数据库      GeoLite2 国家IP数据库

Nginx拓展模块地址:GitHub

下面为Nginx安装配置

(1)需要先安装libmaxminddb依赖库。libmaxminddb是一个C库文件,用于读取MaxMind DB文件,包括MaxMind下的GeoIP2数据文件。

(2)重新编译ngx_http_geoip2_module模块。原Nginx带的–with-http_geoip_module用的是使用的是第一代Geoip(geoip1)。现在geoip2还未加入模块中。

(3)简单配置nginx.conf示例

ICXVWMP2

参考资料

【1】MaxMind APIs

【2】libmaxminddb

【3】ngx_http_geoip2_module

 

 

发表评论