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数据文件。
1 2 3 4 5 6 7 8 9 |
$ cd /usr/local/src $ git clone --recursive https://github.com/maxmind/libmaxminddb $ cd libmaxminddb $ ./bootstrap $ ./configure $ make $ make install $ sh -c "echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf" $ ldconfig |
(2)重新编译ngx_http_geoip2_module模块。原Nginx带的–with-http_geoip_module用的是使用的是第一代Geoip(geoip1)。现在geoip2还未加入模块中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#获取ngx_http_geoip2_module #cd /usr/local/src && git clone --recursive https://github.com/leev/ngx_http_geoip2_module #查看原nginx编译参数 # nginx -V nginx version: nginx/1.6.2 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) TLS SNI support enabled configure arguments: --prefix=/opt/webserver/nginx --without-http_memcached_module --user=www --group=www --with-http_image_filter_module --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.1j --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.36 --with-http_sub_module --add-module=/usr/local/src/nginx-accesskey-2.0.3 --with-http_realip_module --with-http_mp4_module #添加模块、重新编译编译nginx #cd /usr/local/src/nginx-1.6.2 && ./configure --prefix=/opt/webserver/nginx \ --without-http_memcached_module \ --user=www \ --group=www \ --with-http_image_filter_module \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_gzip_static_module \ --with-openssl=/usr/local/src/openssl-1.0.1j \ --with-zlib=/usr/local/src/zlib-1.2.8 \ --with-pcre=/usr/local/src/pcre-8.36 \ --with-http_sub_module \ --add-module=/usr/local/src/nginx-accesskey-2.0.3 \ --add-module=/usr/local/src/ngx_http_geoip2_module \ --with-http_realip_module \ --with-http_mp4_module && make #备份原nginx程序文件 #mv /opt/webserver/nginx/sbin/nginx /opt/webserver/nginx/sbin/nginx.bak && \cp objs/nginx /opt/webserver/nginx/sbin/nginx && nginx -t #测试没有问题,升级nginx #make upgrade |
(3)简单配置nginx.conf示例
参考资料
【1】MaxMind APIs
【2】libmaxminddb