nginx新的geoip2库使用

缘起

nginx是支持geoip库进行访问来源位置判断的,可以在access.log中看到访问来源的ip地址。

之前一直使用geoi的lite版本的country和city信息(GeoIp.dat和GeoIpLiteCity.dat)。
但是自19年2月份开始,maxmin官方已经不再提供老版本的数据库,而是换成了新的mmdb格式,导致以后的geoip维护困难。

而这个月由于老的搬瓦工openvz架构的服务器不能再续费了,折腾着手工迁移到kvm架构的机器,而nginx配置geoip地址时,发现官方已经没有老的数据库提供了。。。

因此有了此文,记录下在当前获取geoip2的老数据库的方法,以继续支持nginx的ip位置使用。

nginx中使用geoip的方法如下,就不细说了,如下即可。

# 在nginx配置的http配置中增加如下配置  
geoip_country         /var/GeoIP/GeoIP.dat;
geoip_city            /var/GeoIP/GeoLiteCity.dat;

折腾过程

因为是19年2月份geoip才不支持老版本的数据库提供(目前maxmind官方的geoip传统库下载已经关闭),网上很多的方法都是不行的。

主要找到的获取到老的数据库格式dat文件的方法有下面几种:

1、通过转换工具装换成老的格式

此类工具有比较多,但是我试了没有成功过,这里就不细说了,有兴趣可以自行看下。
ip2geo
nginx-geo
geolite2legacy

2、在网上找下其他人成功转换过的数据库

经过一番搜索,找到了下面这个网站,是直接提供了转换后的数据库文件的,想省事免得折腾的可以直接下载来用。

geoiplegacy

经过测试,下载maxmind country的ipv4/v6数据库和maxmind city的ipv4数据库是可以用的,使用ipv4/v6的city实测不能用。

总结

最后是使用了geoiplegacy网页提供的地址获取到的geoip老数据库,感觉maxmind也是坑,既然更新了数据库格式,为什么nginx中的相关模块没有更新(也可能是nginx的锅吧)!


已有2位网友发表了看法:

1L油田 2019-04-20 09:50:06 回复
请问可以不可以用 IP2Location LITE 数据库?
1Lroot 2019-04-21 23:15:34 回复
@油田 这个需要额外的niinx插件才行吧,没用过

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。