Nginx之14斗转星移 - (GeoIP)

简介: Nginx从入门到深入之GeoIP

什么是GeoIP

GeoIP为通过访问IP从而定位到经纬度、国家地图、或者省(州)等位置信息。我们可以通过此功能进行对某一个国家、或者某一个地域进行限制访问,或者是实现自定义个性化的功能。
clipboard

如何启用GeoIP

# libmaxminddb (因为需要读取在GeoIP2的IP数据库库,需要使用到libmaxminddb中的一个C库)
wget https://github.com/maxmind/libmaxminddb/releases/download/1.3.2/libmaxminddb-1.3.2.tar.gz
tar zxvf libmaxminddb-1.3.2.tar.gz
cd libmaxminddb-1.3.2
./configure
make
make  install
# 添加库路径并更新库
sh -c "echo /usr/local/lib  >> /etc/ld.so.conf.d/local.conf"
ldconfig
# GeoIP
wget https://github.com/leev/ngx_http_geoip2_module/archive/3.2.tar.gz
tar zxvf 3.2.tar.gz
# Nginx
 ./configure --prefix=/usr/local/nginx --add-module=../ngx_http_geoip2_module-3.2
make & make install
# GeoLite城市库及国家库(这个库是为了将IP地址翻译成具体的地址信息)
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
gunzip GeoLite2-City.mmdb.gz
gunzip GeoLite2-Country.mmdb.gz
mkdir /data/geoip
mv GeoLite2-City.mmdb  /data/geoip/city.mmdb
mv GeoLite2-Country.mmdb /data/geoip/country.mmdb
# 修改配置文件启用GeoIP
vim /usr/local/nginx/conf/nginx.conf
http {
    geoip2 /data/geoip/country.mmdb {
        $geoip2_data_country_code default=CN country iso_code;
        $geoip2_data_country_name country names en;
    }
    geoip2 /data/geoip/city.mmdb {
        $geoip2_data_city_name default=Shenzhen city names en;
    }

    server {
        listen       80;
        server_name  localhost;
        location / {
            add_header geoip2_data_country_code $geoip2_data_country_code;
            add_header geoip2_data_city_name $geoip2_data_city_name;
            if ($geoip2_data_country_code = CN){
                root /data/webroot/cn;
            }
            if ($geoip2_data_country_code = US){
                root /data/webroot/us;
            }
        }
}

如何检查GeoIP效果

mkdir /data/webroot/us
mkdir /data/webroot/cn
echo "US Site" > /data/webroot/us/index.html
echo "CN Site" > /data/webroot/cn/index.html

美国硅谷ECS访问情况,GeoIP模块成功获取到国家信息为US,城市信息为San Mateo。
clipboard1
中国华南ECS访问情况,GeoIP模块成功获取到国家信息为CN,城市信息为Shenzhen。
clipboard2

目录
相关文章
|
应用服务中间件 定位技术 网络安全
Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
409 0
Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
|
应用服务中间件 nginx
|
测试技术 应用服务中间件 Linux
|
应用服务中间件 定位技术 数据库
利用Nginx加GeoIP MaxMind数据库获取用户的地理位置
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/76376760 利用Nginx加GeoIP MaxMind数据库获取用户的地理位置 版权声明:本文为博主chszs的原创文章,未获得博主授权均不能转载,否则视为侵权。
2069 0
|
25天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
28 0
|
24天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
99 0
|
1天前
|
前端开发 JavaScript 应用服务中间件
前端vue2、vue3去掉url路由“ # ”号——nginx配置(二)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
14 0
|
1天前
|
JavaScript 前端开发 应用服务中间件
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
9 0